VirtualBox VMでホストのDNSを使用する方法


69

VM にはVirtualBoxを使用しています。私のオフィスのネットワーク設定はワイヤレスです。つまり、ローカル名を解決するローカルDNS(something.mycompany.comが123.45.67.89になります)を持つ会社のWiFiネットワークに接続します。新しいVMを作成すると、ホストの接続を継承して外部のインターネットに接続できますが、ローカルDNSを使用してローカル名を解決しません。その/etc/hostsため、ホストで名前を解決した後、VM にアクセスして手動でエントリを作成する必要がありますが、これは面倒です。

VirtualBoxがゲストをホストのDNSに自動的に接続して、この手動の手順を実行する必要がないようにする方法はありますか?私のホストはOSX Mountain Lionです。VMは通常Ubuntuですが、それが問題になるとは思いません。

回答:


99

ホストのリゾルバーを使用してDNSプロキシモードを有効にするには、次のコマンドを実行します。

VBoxManage modifyvm " <VM名> " --natdnshostresolver1 on

その結果、ゲストOSのDNS要求は、ゲストOSを外部DNSサーバーに接続するのではなく、ホストDNS APIを使用してインターセプトおよび解決されます--natdnsproxy1 on

を実行すると、VMの名前を取得できますVBoxManage list runningvms


9
他のユーザーの詳細については、ホストから実行する必要があります。ホストがWindowsの場合、コマンドプロンプトを開き、「C:\ Program Files \ Oracle \ VirtualBox」に移動して、そのコマンドを実行します。VirtualBox Manager GUIには(少なくとも4. *から5.0.20までのすべてのバージョンで)これを他の方法で設定できるオプションはないようです。
グラハム

このコマンドを管理者として実行する必要があることを追加したいと思います。私はcmdからそれを試してみましたが、うまくいきませんでしたが、管理者としてcmdを実行しましたが、すべて完璧に機能しました。
SergeyOvchinnik 16

3
これは以前は機能していましたが、Ubuntu 16.04とWindows用の最新の
仮想ボックスで

私のためにも働いていません:(
パベルデュロフ

1
これは、VMでWindows 7を実行するホストVirtualBox 5.2.6としてのMacOs High Sierraで引き続き機能します。
ジョンエイケンベリー

6

はい、可能です。VirtualBoxには、ゲストとホストの間のネットワークを確立するための多くのモードがあります。NATモード(デフォルト)を使用する代わりに、ブリッジモードを使用して、ゲストマシンをネットワーク上の完全に独立したエンティティとして扱うことができます。そのため、ホストだけでなく、他のマシン(DNSサーバーなど)はゲストを別のマシンとして認識します。

ブリッジモードをセットアップしたら、ubuntuゲストに移動し、会社のDNSサーバー名またはIPを使用するように取得します。詳細については、このチュートリアルを参照してください:http : //prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-oracle-virtualbox/


5

これはGoogleの最高の結果だったので、他の人に明らかにしたかったのです。Josiahのソリューションは、次の行を追加することで機能しました。

hosts: files dns/etc/nsswitch.conf

他の人が指摘したように、元のソリューションはUbuntu 16.04以上では機能しません。ゲストVMはUbuntu 16.04です。

リファレンスのLinuxサーバーの作成


2
スーパーユーザーへようこそ!あなたは:)お探しの方に役立つだろうジョサイアの答えに編集としてあることを提案することができ
bertieb

ヒントをありがとう!コメントだけを追加しようとしましたが、許可されませんでした。代わりに編集を送信しました。
pretzel11

1

また、VPN接続が迷惑なインターネット接続を妨げることに気付きました。

このスタック交換のおかげで、Vagrantfileに埋め込むことで解決できました

config.vm.provider "virtualbox" do |vb|
  vb.cpus = 1
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  vb.memory = "2048"
end

そして、コマンドライン経由で変更するためにボックスをシャットダウンしてから再プロビジョニングするという面倒な作業を避けました

export PATH=$PATH:/c/Program\ Files/Oracle/VirtualBox/
VBoxManage list runningvms
export vbox=`VBoxManage list runningvms | cut -d '"' -f 2`
VBoxManage controlvm $vbox poweroff
VBoxManage modifyvm $vbox --natdnshostresolver1 on
vagrant.exe up --provision

0

私にとっては、最初の(NATモード)を維持しながら、ホストオンリーアダプターで別のアダプターを追加するのに役立ちました。

[スクリーンショット1]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.