Назад | Перейти на главную страницу

Бродячий частный IP-адрес не найден после изменения сети

У меня есть простая установка виртуальной машины Vagrant Ubuntu с использованием Virtual Box, работающая на Mac.

Я использую частную сеть, настроенную со статическим частным IP-адресом, например:

Vagrant.configure("2") do |config|
    config.vm.network :private_network, ip: "10.11.12.13"
end

Это работает нормально, за исключением случаев, когда я переключаюсь между Wi-Fi и проводной сетью. Когда я это делаю, мне кажется, что я больше не могу подключиться к виртуальной машине со статическим IP-адресом. Я попытался остановить и перезапустить виртуальную машину и даже уничтожить и воссоздать виртуальную машину, но безрезультатно.

Есть ли способ сбросить сетевое соединение, чтобы частный IP вернулся? Я в порядке с прямым доступом к нему в VirtualBox или где-то еще. Кажется, единственный способ заставить его работать - это перезагрузить всю мою машину прямо сейчас.

Кажется, что сетевой адаптер для VirtualBox можно легко перезапустить из командной строки, запустив что-то вроде следующего (в вашей системе будет немного по-другому)

sudo ifconfig vboxnet1 down
sudo ifconfig vboxnet1 up

Обратите внимание, что вам придется заменить vboxnet1 с любым вашим виртуальным сетевым адаптером для VirtualBox, который вы можете узнать:

  • Запуск Virtual Box
  • Выбор виртуальной машины, которую вы используете
  • Посмотрите на Network раздел. Вы увидите в списке адаптер, в котором vboxnet во имя этого. Это имя адаптера, которое вы ищете.

Вы также можете увидеть, какие сетевые адаптеры у вас есть, просто запустив ifconfig в терминале:

ifconfig

Если вы хотите, чтобы это было заключено в простой сценарий bash, вы можете использовать следующее:

restart_vbox_network_adapter.sh

ADAPTER=${1:-"vboxnet1"}

sudo ifconfig $ADAPTER down
sudo ifconfig $ADAPTER up

и вы бы назвали это так, снова используя правильный сетевой адаптер для вашей виртуальной машины:

restart_vbox_network_adapter.sh vboxnet2

ssh в вашу бродячую виртуальную машину и выполните следующую команду

sudo /etc/init.d/network restart