VirtualBox中Arch Linux(AntergOS)虚拟机主机休眠后网络丢失求助
解决VirtualBox桥接模式虚拟机主机休眠唤醒后丢网的问题
我之前处理过不少类似的情况——Windows 10主机休眠唤醒后,VirtualBox里的Arch系虚拟机(比如你的Antergos)桥接网卡直接丢IP,重启网络服务也没用,只能重启虚拟机。下面给你几个不用重启虚拟机的修复方案,按顺序试就行:
一、先试试重启虚拟机的网络服务
Antergos默认用NetworkManager管理网络,直接在虚拟机里跑这条命令:
sudo systemctl restart NetworkManager
跑完之后用ip addr看看网卡有没有重新拿到IP。如果你的系统是用systemd-networkd而非NetworkManager,就换这两条:
sudo systemctl restart systemd-networkd sudo systemctl restart systemd-resolved
二、在VirtualBox里重新触发网卡连接
有时候主机休眠后,VirtualBox的桥接驱动和物理网卡的关联会断,不用关虚拟机,直接在主机端操作:
- 打开VirtualBox管理器,选中运行中的Antergos虚拟机
- 点顶部的「设备」→「网络」,先取消勾选「网络连接」
- 等个5秒左右,再重新勾选「网络连接」,确认选的是你主机正在用的物理网卡
- 切回虚拟机,再查IP应该就正常了
三、配置静态IP彻底解决DHCP失效问题
如果上面的临时修复还是经常出问题,不如给虚拟机设个静态IP,跳过DHCP的坑:
- 先查一下你主机的网段(比如
192.168.1.x),然后在虚拟机里编辑NetworkManager的连接:sudo nmcli con edit enp0s3 # enp0s3换成你的网卡名,用ip addr能查到 - 进入交互模式后依次输入这些命令(把IP换成你主机网段里的空闲地址):
set ipv4.method manual set ipv4.addresses 192.168.1.100/24 set ipv4.gateway 192.168.1.1 # 这个是你主机的网关地址 set ipv4.dns 8.8.8.8 # 或者用你家里路由器的DNS save quit - 最后重启NetworkManager生效:
sudo systemctl restart NetworkManager
四、调整VirtualBox桥接网卡的高级设置
还有个小技巧,修改VirtualBox的网卡高级选项,减少休眠唤醒后的异常:
- 先关掉虚拟机,打开「设置」→「网络」→「网卡1」→「高级」
- 把「混杂模式」改成「允许所有」
- 勾选「接入网线」选项
- 启动虚拟机后再测试休眠唤醒,大概率不会再丢网了
内容的提问来源于stack exchange,提问作者Lion




