У меня есть гостевая ОС Ubuntu в VirtualBox с использованием NAT по умолчанию для eth0.
Хорошо работает в офисе и дома, за исключением случаев, когда в офисе VPN из дома.
Когда хост-ОС (Windows 7) подключена к VPN, поиск DNS не работает в гостевой системе Virtualbox. DNS-запросы в порядке на хосте. В Virtualbox я могу пинговать IP-адреса напрямую как внутри VPN, так и снаружи, так что это не проблема подключения.
Похоже, гость Ubuntu использует localhost в качестве точки входа DNS, согласно /etc/resolv.conf
и nslookup
. Таким образом, похоже, что что-то локально отправляется в другой базовый DNS.
Как мне устранить это?
ubuntu
virtualbox
dns
wrschneider
источник
источник
Ответы:
Это сработало по какой-то причине
C:\...\VirtualBox\VBoxManage modifyvm "VM name" --natdnshostresolver1 on
Я подозреваю, что это потому, что когда VPN активен, хост делает что-то особенное для поиска DNS, помимо простой пересылки запросов на указанные DNS-серверы, которые VirtualBox обнаружил из конфигурации Windows.
источник
У меня была очень похожая ситуация с Lubuntu 16.04 (должна быть идентична в других Ubuntus), но это исправление не улучшило ситуацию. По крайней мере, с 16.04 проблема, по-видимому, заключается в том, что NetworkManager использует локальный DNS-прокси (dnsmasq), и это плохо работает с VPN-соединениями, по крайней мере, в конфигурации по умолчанию.
Комментирование / удаление dns = dnsmasq в /etc/NetworkManager/NetworkManager.conf
Вероятно, есть способ настроить dnsmasq, но это дает (мне) эквивалентный доступ к хосту (dns и т. Д.), Поэтому я не исследовал. YMMV.
источник
TL; DR:
VBoxManage modifyvm "VM name" --natdnshostresolver1 on
Запуск виртуальной машины на хосте, подключенном к VPN, может привести к проблемам с DNS при каждом изменении статуса VPN. Есть два сценария:
1) VPN-подключен -> VPN-отключен
В этом случае виртуальная машина, вероятно, получит адрес DNS, который является частью сети VPN-провайдера. Обычно это будет внутренний частный IP-адрес. Проверьте содержание
cat /etc/resolv.conf
. В моем случае я получаю следующее:nameserver 10.8.8.1
<--- Это внутренняя сеть VPN-провайдераnameserver 192.168.178.1
<--- Это мой домашний шлюз (роутер)Теперь отключите хост от VPN-подключения:
Более подробно:
2) VPN-отключен -> VPN-подключен
В этом случае виртуальная машина не получит DNS-адрес, который является частью поставщика сети VPN, поскольку хост не был подключен к VPN при запуске виртуальной машины. Проверьте содержание
cat /etc/resolv.conf
. В моем случае я получаю следующее:nameserver 192.168.178.1
<--- Это мой домашний шлюз (роутер)Теперь подключите хост к VPN-соединению:
Более подробно:
источник