Vagrant / VirtualBox DNS 10.0.2.3 не працює


78

У мене є нова установка Linux Mint Nadia (14). Я дотримуюся вказівок щодо роботи з бродячим розпорядженням, але застряг у забезпеченні . Здається, що ящик Vagrant не може підключитися зовні, тому я не можу нічого встановити, використовуючи ні шеф-кухаря, ні лялечку.

В основному 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щоб я міг забезпечити резервування.


2
FYI, що я просто потрапив у цю саму проблему з ubuntu/xenial64коробкою, і виявився помилка з самою коробкою .
Айдан Фельдман

@AidanFeldman те саме для мене. Щойно переключившись, bento/ubuntu-16.04і DNS працює нормально без будь-яких подальших виправлень.
HenningCash

Відповіді:


84

Ви можете вирішити цю проблему одним із двох способів, обидва з яких містяться у посібнику щодо 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 та використовує API DNS хоста для запиту інформації та повернення її гостю .


1
Дякую. "Використання роздільної здатності хоста як проксі-сервера DNS в режимі NAT" зробило свою справу. Дуже шкода, що я маю це робити для кожного встановлення Vagrant.
Рудольф Ваврух

1
Я майже завжди використовую мостовий режим для ВМ, що усуває проблему (і цілу низку інших проблем).
Майкл Хемптон

3
Тільки виникла проблема з оновленням до 4.2.20, "Використання резолюції хоста як проксі-сервера DNS в режимі NAT" зробило трюк і для мене. Дякую !
edomaur

73

Слідкуйте за посиланням 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

2
Додавши це до моєї Vagrantfileвиправленої проблеми, коли я не міг запуститись, gem install...не отримавши дурних помилок DNS :) Дякую!
Нік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.