Я запускаю новую установку Linux Mint Nadia (14). Я следую инструкциям на Vagrant Начиная но застряли на Подготовка. Кажется, что ящик Vagrant не может подключиться снаружи, поэтому я не могу ничего установить с помощью Chef или Puppet.
В основном Vagrant resolve.conf
содержит nameserver 10.0.2.3
. Но с этим набором я не могу пинговать us.archive.ubuntu.com
.
Если я изменю его на 8.8.8.8
тогда я могу пинговать us.archive.ubuntu.com
но он не остается установленным, а после перезагрузки снова становится 10.0.2.3
- так что инициализация снова не выполняется.
В идеале я бы хотел 10.0.2.3
работать над моей настройкой. Если это не удается, я хотел бы навсегда изменить resolv.conf
так что я могу выполнить подготовку.
Вы можете обойти эту проблему одним из двух способов, оба из которых в руководстве VirtualBox:
Включение DNS-прокси в режиме NAT
Механизм NAT по умолчанию предлагает гостю те же DNS-серверы, которые настроены на хосте. В некоторых сценариях может быть желательно скрыть IP-адреса DNS-серверов от гостя, например, когда эта информация может измениться на хосте из-за истечения срока аренды DHCP. В этом случае вы можете указать механизму NAT действовать как DNS-прокси, используя следующую команду:
VBoxManage modifyvm "VM name" --natdnsproxy1 on
Использование преобразователя хоста в качестве DNS-прокси в режиме NAT
Для разрешения сетевых имен DHCP-сервер механизма NAT предлагает список зарегистрированных DNS-серверов хоста. Если по какой-то причине вам нужно скрыть этот список DNS-серверов и использовать настройки преобразователя хоста, тем самым заставляя механизм NAT VirtualBox перехватывать DNS-запросы и перенаправлять их преобразователю хоста, используйте следующую команду:
VBoxManage modifyvm "VM name" --natdnshostresolver1 on
Обратите внимание, что этот параметр аналогичен режиму прокси-сервера DNS, однако, в то время как режим прокси просто перенаправляет запросы DNS на соответствующие серверы, режим преобразователя будет интерпретировать запросы DNS и использовать DNS API хоста для запроса информации и возврата ее гостю. .
После https://serverfault.com/a/453260/14832, если вы используете формат конфигурации Vagrantfile версии 2, тот, который начинается:
Vagrant.configure("2") do |config|
Затем вы можете добавить это в этот файл конфигурации:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
Если вы используете старый формат конфигурации, но используете Vagrant 1.1+, вы можете добавить это в конец файла:
Vagrant.configure("2") do |config|
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
Некромантинг, поскольку, на мой взгляд, ни один из ответов не пролил свет на основная причина этой проблемы, которая кажется довольно интересной. В современном контексте - проблема также возникает с Debian 10 и VirtualBox 6.0.14; после установки Deb 10 по умолчанию (без графического интерфейса пользователя) с одним адаптером «NAT» (не «Сеть NAT», а по умолчанию «NAT») все выглядит нормально с DNS. Затем при изменении /etc/network/interfaces
(который кажется все еще актуальным в этом дистрибутиве) на статический IP:
#iface enp0s3 inet dhcp
iface enp0s3 inet static
address 10.0.2.15
netmask 255.255.255.0
gateway 10.0.2.2
(примечание - виртуальная машина получила бы 10.0.2.15
из dhcp в любом случае) и выключение / включение виртуальной машины,
host google.com
и т.д., таймаут)telnet 10.0.2.3 53
(resolv.conf
имеет nameserver 10.0.2.3
, по умолчанию после установки).Если я вернусь к iface enp0s3 inet dhcp
и перезагрузка ВМ, DNS и telnet 10.0.2.3 53
работай.
Теперь это становится действительно захватывающим / причудливым: если вы снова попробуете inet static
, и просто перезагрузись виртуальная машина, DNS и телнет все еще работает нормально; только если вы выключите / включите виртуальную машину (через виртуальный бокс), 10.0.2.3
исчезает.
На данный момент я предполагаю, что VirtualBox автоматически включает DNS-сервер / прокси на 10.0.2.3
как только он получит dhcp
запрос; и это 10.0.2.3
живет до тех пор, пока виртуальная машина не отключена (но может быть перезагружена).
(Я бы проверил это, если бы знал, как подделать dhcp
запрос на 10.0.2.0/24
; кто-нибудь знает как?)
__
Итог для тех, кто действительно хочет изменить IP на статический (в адаптере "NAT"): просто найдите способ вставить правильный nameserver
в /etc/resolv.conf
(в некоторых сценариях инициализации может быть после запуска).