Поэтому у меня возникли проблемы с настройкой Vagrant 'hashicorp / precision64' в моей книге MAC.
Во-первых, мой конфиг:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precision64" config.vm.network "public_network", тип: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" конец
Это выход "бродяги вверх"
==> по умолчанию: Попытка постепенного отключения ВМ ...
==> по умолчанию: проверка, если поле 'hashicorp / точный64' является актуальным ...
==> default: очистить все ранее установленные перенаправленные порты ...
==> default: очистить все ранее установленные сетевые интерфейсы ...
==> по умолчанию: подготовка сетевых интерфейсов на основе конфигурации ...
по умолчанию: адаптер 1: nat
по умолчанию: адаптер 2: мостовой
==> по умолчанию: переадресация портов ...
по умолчанию: 22 => 2222 (адаптер 1)
==> по умолчанию: загрузка ВМ ...
==> default: ожидание загрузки машины. Это может занять несколько минут...
по умолчанию: адрес SSH: 127.0.0.1:2222
по умолчанию: имя пользователя SSH: vagrant
по умолчанию: SSH метод аутентификации: закрытый ключ
по умолчанию: Предупреждение: время ожидания соединения. Повторное подключение ...
==> по умолчанию: машина загружена и готова!
GuestAdditions 4.3.10 работает --- ОК.
==> по умолчанию: Проверка гостевых дополнений в ВМ ...
==> по умолчанию: установка имени хоста ...
==> по умолчанию: настройка и включение сетевых интерфейсов ...
==> по умолчанию: монтирование общих папок ...
по умолчанию: / vagrant => / пользователи / garthm / проекты / vagrant
==> по умолчанию: машина уже подготовлена. Запустите `vagrant provision` или используйте` --provision`
==> по умолчанию: для принудительной инициализации. Поставщики, помеченные для запуска всегда будут работать.
'ifconfig' показывает следующее:
vagrant @ mddirector: ~ $ ifconfig
eth0 Link encap: Ethernet HWaddr 08: 00: 27: 88: 0c: a6
адрес в сети Интернет: 10.0.2.15 Bcast: 10.0.2.255 Маска: 255.255.255.0
inet6 адрес: fe80 :: a00: 27ff: fe88: ca6 / 64 Область действия: ссылка
UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
Пакеты RX: 725 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
Пакеты TX: 544 ошибки: 0 отброшено: 0 переполнений: 0 несущая: 0
столкновения: 0 txqueuelen: 1000
RX-байты: 90824 (90,8 КБ). TX-байты: 63375 (63,3 КБ).
eth1 Link encap: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a
адрес в сети Интернет: 10.0.24.118 Bcast: 10.0.31.255 Маска: 255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
Пакеты RX: 3490 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
Пакеты TX: 7 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
столкновения: 0 txqueuelen: 1000
RX-байты: 345981 (345,9 КБ). TX-байты: 1102 (1,1 КБ).
lo Link encap: Local Loopback
адрес в сети: 127.0.0.1 маска: 255.0.0.0
inet6 адрес: :: 1/128 Область применения: Host
UP LOOPBACK RUNNING MTU: 16436 Метрика: 1
Пакеты RX: 0 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
Пакеты TX: 0 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
столкновений: 0 txqueuelen: 0
RX байтов: 0 (0,0 B) TX байтов: 0 (0,0 B)
Моя проблема в том, что я могу пропинговать виртуальную машину с моей хост-машины ( IP: 10.0.24.112), другие люди могут 10.0.24.XXXпропинговать мою IP: 10.10.116.254виртуальную машину тоже ( ), моя виртуальная машина может пропинговать мою devbox ( ), я могу пропинговать настройки виртуальной машины других разработчиков из моей devbox ( не Vagrant, IP: 10.10.116.254), но я не могу пропинговать свою виртуальную машину из своего devbox, а другие разработчики не могут пропинговать мою виртуальную машину из своего devbox.
У них есть настройки виртуальной машины только с сетевым адаптером Bridged, но бродяга по какой-то причине имеет как NAT, так и Bridged, хотя я указал bridged в конфигурации. Как видите, у Vagrant VM есть два IP-адреса, что кажется неправильным. Вы также можете, когда он загружается, он выполняет переадресацию порта на Adapter 1, который является адаптером NAT, что означает, что он звучит так, как будто он использует адаптер NAT по умолчанию для всего.
Как избавиться от адаптера NAT и использовать только мост?
Если я отредактирую настройки VirtualBox и отключу адаптер NAT, то есть есть только адаптер с мостовыми соединениями и загружаю коробку через VirtualBox (то есть: не использую vagrant up), тогда у него есть только eth0 с IP-адресом, который можно проверить на моем devbox что я и ищу. Если я попытаюсь выскочить из окна после редактирования настроек VirtualBox и отключения адаптера NAT, я получу следующую ошибку:
Произошла ошибка при выполнении `VBoxManage`, интерфейса командной строки, используемого Vagrant для управления VirtualBox. Команда и stderr показаны ниже. Команда: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222,, 22"] Stderr: VBoxManage: ошибка: правило NAT с таким именем уже существует VBoxManage: ошибка: Подробности: код NS_ERROR_INVALID_ARG (0x80070057), компонент NATEngine, интерфейс INATEngine, вызываемый nsISupports VBoxManage: error: Context: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUIuP) ( строка 1655 файла VBoxManageModifyVM.cpp
Если я немедленно снова выполню vagrant, он снова включит адаптер NAT, и мы снова столкнемся с той же проблемой.