63

Я использую VirtualBox для своих виртуальных машин. Моя офисная сеть настроена на беспроводную связь, т. Е. Я подключаюсь к сети Wi-Fi моей компании, в которой есть локальный DNS для разрешения локальных имен (например, что- то . Когда я создаю новую виртуальную машину, она может подключаться к внешнему интернету, наследуя соединение с хостом, но не разрешает локальные имена, используя локальный DNS. Поэтому я должен зайти в /etc/hosts на виртуальной машине и вручную сделать запись после того, как я разрешу имя на хосте, что раздражает.

Есть ли способ, чтобы VirtualBox автоматически подключал гостя к DNS хоста, чтобы мне не пришлось выполнять этот шаг вручную? Мой хост - OSX Mountain Lion, виртуальные машины - обычно Ubuntu, но я сомневаюсь, что это должно иметь значение.

4 ответа4

91

Чтобы включить режим DNS-прокси с помощью распознавателя хоста, выполните следующую команду:

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

В результате DNS-запросы гостевой ОС будут перехватываться и обрабатываться с использованием DNS-API хоста, а не с подключением гостевой ОС к внешним DNS-серверам, как при --natdnsproxy1 on .

Вы можете получить имя виртуальной машины, запустив VBoxManage list runningvms .

5

Да, это возможно. В 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/

4

Это был лучший результат Google, поэтому я хотел уточнить для других. Решение Иосии сработало для меня с добавлением строки:

"hosts: files dns" в /etc/nsswitch.conf

Как отмечали другие, оригинальное решение не работает над Ubuntu 16.04. Моя гостевая ВМ - Ubuntu 16.04.

Ссылка Создание Linux-сервера

1

Я также заметил, что мое VPN-соединение мешает бродячему интернет-соединению.

Благодаря этому обмену стеками я смог решить, встроив в свой Vagrantfile

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

И избежал скуки необходимости выключить окно, чтобы изменить через командную строку, а затем reprovision

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .