Как исправить сервис имен для клиента Vagrant?

18

Я новичок в Ubuntu (только что установив Ubuntu 12.10) и хочу начать разработку с ним. Итак, я установил Vagrant, скачал lucid64.box, инициализировал, запустил и получил доступ через ssh.

Для проверки интернет-соединения на моем клиенте я сделал ping google.com и получил unknown host: google.com. (Хост получил пинг, конечно.)

Поиск в Интернете привел меня только к этому решению, которое предложило удалить Vagrant и Virtual box и переустановить их, просто убедитесь, что Vagrant установлен первым. Я пробовал это решение, и я все еще получаю те же результаты.

Что еще я могу попытаться заставить его работать?

Шахар Галукман
источник
1
Была проблема с моим клиентом сервера, получающим DNS. Использование Google DNS, изменилось /etc/resolv.confи добавлено, чтобы /etc/network/interfacesрешить проблему.
Шахар Галукман
Могу я спросить, какой учебник вы используете? Просто предположение: это начинается с Джанго? Если так, я свяжусь с автором, чтобы обратиться к настоящей проблеме. Если нет, я удалю этот комментарий.
don.joey
Я не использую туториал, который вы упомянули. Нашел решение, основанное на здравом смысле, но решение bayoffire гораздо лучше, также, как он упоминал, это известная ошибка, поэтому я верю, что она будет исправлена ​​в следующем выпуске.
Шахар Галукман

Ответы:

30

У меня была такая же проблема с Ubuntu 12.10 и я нашел решение. Просто добавьте эти строки в ваш Vagrantfile:

config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]

Для Vagrant 1.1+ вам понадобится (спасибо farooqsadiq)

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

Кажется, это известная ошибка в VirtualBox в Ubuntu 12.10:

https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1048783

https://www.virtualbox.org/ticket/10864

lukassteiner
источник
Приятно знать, что это известная ошибка, хотя мне не удалось найти что-то об этом самостоятельно. Обходной путь, который я упомянул в моем комментарии выше, решил это для меня все же. По крайней мере, у других людей с такой же ошибкой будут два разных способа решения этой проблемы. Спасибо.
Шахар Галукман
Еще больше об этой проблеме. Ваше решение будет более подходящим, так как конфигурация DNS, выполненная вручную (как предложено мной выше), будет удаляться каждый раз, когда я запускаю виртуальную
машину
1
Посмотрите этот ответ для решения по более новым версиям Vagrant: askubuntu.com/a/296796/122097
Брэд
6

Для Vagrant 1.1+ вам понадобится

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

Проверено на Vagrant 1.2.2

Найдено в блоге Лита http://lyte.id.au/tag/vagrant/

farooqsadiq
источник
это исправляет следующую ошибку: Невозможно добавить PPA: 'ppa: brightbox / ruby-ng'. Пожалуйста, проверьте правильность имени или формата PPA. на Ubuntu 14 с vagrant 1.7.2 и виртуальной коробкой на macos.
nruth
5

Вы можете заставить трюк modifyvm работать на всех виртуальных машинах Vagrant одним ударом, поместив фрагмент в ~ / .vagrant.d / Vagrantfile, например:

Vagrant::Config.run do |config|
    config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
Дэвид Шон
источник
2

(Новый) Vagrantfile * по умолчанию * содержит несколько закомментированных примеров, один из которых выглядит следующим образом:

  # Assign this VM to a bridged network, allowing you to connect directly to a
  # network using the host's network device. This makes the VM appear as another
  # physical device on your network.
  # config.vm.network :bridged

Убедитесь, что вы откомментировали эту строку:

conig.vm.network :bridged

Это даст вашей виртуальной машине доступ к сети / Интернету.

* Начиная с версии 1.0.6. На момент получения этого ответа последняя версия в хранилище была 1.0.3, в ней могут отсутствовать все дополнительные примеры; в этом случае вам нужно добавить эту строку кода.

Ион
источник
Я бы использовал это только, если NAT не работает. Мостовые сети работают, только если вы получаете IP от HDCP к виртуальной машине. Смотрите это: docs.vagrantup.com/v1/docs/bridged_networking.html (не все сети работают!)
lukassteiner