Vagrant部署的VirtualBox Ubuntu/xenial64虚拟机频繁断网求助
我之前折腾Vagrant+VirtualBox的时候也碰到过几乎一模一样的网络断连问题,结合你的配置(NAT+桥接双网卡),给你几个亲测有效的排查和解决方向:
1. 调整VirtualBox NAT的TCP超时设置
VirtualBox的NAT模式默认有个60秒的TCP连接超时机制,这很可能是你ping一分钟就断的核心原因。可以这么修改:
- 先执行
vagrant halt关掉虚拟机 - 打开VirtualBox管理器,找到你的Ubuntu虚拟机,进入「设置」→「网络」→「适配器1(NAT)」→「高级」,点击「端口转发」旁边的「网络设置」按钮
- 在弹出的NAT网络配置窗口里,把「TCP连接超时」从默认60秒改成3600秒,或者直接勾选「禁用TCP连接超时」
- 保存后执行
vagrant up启动虚拟机,再持续ping测试看看稳定性
2. 关闭Ubuntu虚拟机的网卡电源管理
Ubuntu默认的网卡电源管理会在闲置一段时间后自动休眠,这也会导致突然断网。操作步骤:
- SSH登录虚拟机后,先用
ifconfig确认你的网卡名称(桥接模式下可能是enp0s8这类,NAT模式可能是enp0s3) - 临时禁用电源管理,比如网卡是
enp0s8的话:sudo iwconfig enp0s8 power off - 要永久生效的话,编辑
/etc/network/interfaces文件,在对应网卡的配置块里加一行:
保存后重启网络服务:post-up iwconfig enp0s8 power offsudo systemctl restart networking
3. 给桥接网卡指定固定MAC地址
有时候桥接模式下自动生成的MAC地址和主机网络环境冲突,或者VirtualBox识别异常,手动指定MAC可以解决这类问题:
- 在你的Vagrantfile里修改桥接网卡的配置,加上符合格式的MAC地址(比如
080027xxxxx):config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)", mac: "080027123456" - 执行
vagrant reload重启虚拟机,再测试网络稳定性
4. 切换VirtualBox的网络驱动
VirtualBox默认的网络驱动和Mac的Wi-Fi兼容性有时候不太好,换成Paravirtualized驱动试试:
vagrant halt后打开VirtualBox设置,进入「网络」→「适配器1/2」→「高级」,把「网络驱动」改成「Paravirtualized Network (virtio-net)」- 保存后执行
vagrant up,如果虚拟机提示缺少驱动,Ubuntu会自动安装,或者手动执行:sudo apt-get install linux-image-extra-virtual
另外,你可以先单独测试单网卡模式:比如先把Vagrantfile里的桥接网卡注释掉,只用NAT模式跑一遍ping;如果稳定,再单独测试桥接模式,这样能快速定位是不是双网卡共存导致的路由冲突。
内容的提问来源于stack exchange,提问作者SomeGuyFortune
相关产品推荐
相关产品推荐

