私のVMにはVirtualBoxを使います。私のオフィスのネットワーク設定は無線です、すなわち私は私達の会社のWiFiネットワークに接続します。そしてそれはローカル名を解決するためにローカルDNSを持っています(something.mycompany.comのように123.45.67.89に行く)。新しいVMを構築すると、ホストの接続を継承した外部インターネットに接続できますが、ローカルDNSを使用してローカル名を解決することはできません。そのため、VMの/etc/hosts
に入り、ホスト上の名前を解決した後に手動で入力する必要がありますが、これは面倒です。
この手動の手順を実行する必要がないように、VirtualBoxが自動的にゲストをホストのDNSに接続する方法はありますか?私のホストはOSX Mountain Lionです、VMは通常Ubuntuですが、私はそれが問題になるはずです。
ホストのリゾルバを使用したDNSプロキシモード を有効にするには、次のコマンドを実行します。
VBoxManage modifyvm "<VMname>" --natdnshostresolver1 on
その結果、ゲストOSのDNS要求は、--natdnsproxy1 on
のようにゲストOSが外部のDNSサーバーに接続するのではなく、ホストDNS APIを使用して傍受および解決されます。
VBoxManage list runningvms
を実行すると、VMの名前を取得できます。
はい、可能です。 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 /
これはグーグルの最高の結果だったので、私は他の人たちのために明確にしたかった。 Josiahの解決策は私には以下の行を追加することでうまくいった。
「hosts:files dns」から/etc/nsswitch.confに
他の人が指摘したように、オリジナルの解決策はUbuntu 16.04以上では機能しません。私のゲストVMはUbuntu 16.04です。
参考 Linuxサーバの作成
私はまた私のVPN接続がvagrantインターネット接続を妨害しているのに気づきました。
このスタック交換のおかげで、私はVagrantファイルに埋め込むことで解決することができました。
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
私にとっては、最初の(NATモード)を維持したまま、ホストオンリーアダプターで別のアダプターを追加するのに役立ちました。
[