我对 vagrant 比较陌生,但到目前为止我肯定喜欢它。
我经常遇到的一个小问题是,当我的主机网络暂时中断时,它会影响我与我的 vagrant guest vm 的连接。
当我的主机网络再次恢复时,我必须 - 在我的主机上 - 运行vagrant halt
,然后vagrant up
才能“重置”我的访客 vagrant vm 的网络,以便它可以再次连接到互联网。
是否有更“优雅”的方式通过我的主机网络获取我的虚拟机的互联网连接以检测互联网网络连接是否已备份?
我对 vagrant 比较陌生,但到目前为止我肯定喜欢它。
我经常遇到的一个小问题是,当我的主机网络暂时中断时,它会影响我与我的 vagrant guest vm 的连接。
当我的主机网络再次恢复时,我必须 - 在我的主机上 - 运行vagrant halt
,然后vagrant up
才能“重置”我的访客 vagrant vm 的网络,以便它可以再次连接到互联网。
是否有更“优雅”的方式通过我的主机网络获取我的虚拟机的互联网连接以检测互联网网络连接是否已备份?
是的,最简单的解决方案是重新启动 VM 本身内的网络子系统。不应中断 SSH 连接。在 Ubuntu 上,执行以下操作:
sudo /etc/init.d/networking restart
关于 Mitchell 的回答,对于我的 Vagrant 版本 1.5.2,命令略有不同:
须藤/etc/init.d/网络重启
而不是使用“网络”。我知道没什么大不了的,只是想说。
与 Vagrant Mitchell 的伟大合作!
这是我所做的:
HOST=VM IP 地址 PRIVATE_KEY_PATH= 私钥路径
ssh vagrant@$HOST -i $PRIVATE_KEY_PATH
登录到虚拟机
然后,sudo /etc/init.d/networking restart
其他答案中列出的命令的更新版本(2018 年)*:
对于 Ubuntu 16.04.* LTS(Xenial Xerus):
sudo systemctl restart networking
# Check the status - there is no better way with systemd for now:
# https://github.com/systemd/systemd/issues/1287
sudo systemctl status networking
对于 CentOS 7.5(network
vsnetworking
是非常不幸的区别,但我们在这里):
sudo systemctl restart network
# Check the status - there is no better way with systemd for now:
# https://github.com/systemd/systemd/issues/1287
sudo systemctl status network
*在现代发行版中,答案中列出的脚本只是systemd
's 的包装systemctl
。