每隔一段时间后启动VM内安装的Ubuntu,都会出现断网的情况,并且及其难以恢复,原因也不是很清楚。根据很多常规的方法修改虚拟机设置里的网络配置同样无效。
后来参考了一篇华为开发者空间那边的文章,倒是有一段时间可以解决,文章地址如下:
使用VMware Workstation创建的虚拟机无法连接网络解决方法_linux_Type_Francis-华为开发者空间
但操作比较繁琐,且前段时间似乎还没用了。
后来在deepseek老师的帮助下尝试去查环境。
首先使用ping语句检查网络是否正常,在命令行内执行(命令行可以用ctrl+alt+t快捷打开):
ping www.baidu.com
如果连接正常就可以退出这篇文章了,不是接下来会提到的问题。
当出现连接失败的情况,进一步检查网络接口状态,在命令行内输入:
ip a
得到输出大致如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:bc:61:a4 brd ff:ff:ff:ff:ff:ff
altname enp2s1
lo 是本地回环接口,正常。
ens33 是实际网卡,但 state DOWN 表示它处于关闭状态,没有获取 IP,也没有与虚拟机网络通信。
所以启动网卡就好了,输入:
sudo ip link set ens33 up
并输入系统用户的密码给予权限后即可打开网卡配置,在外部物理机正常联网的情况下,虚拟机就可以连上互联网了。
当然,还有一种情况,可能会没有 IPv4 地址(正常的 IPv4 地址行应类似 inet 192.168.x.x/24)。
有 inet 行 → 表示有 IPv4 地址;
有 inet6 行 → 表示有 IPv6 地址。
没有IPv4时需要手动请求 DHCP 分配地址:
sudo dhclient ens33
再次使用ip a show ens33查看:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bc:61:a4 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.81.128/24 brd 192.168.81.255 scope global dynamic ens33
valid_lft 1797sec preferred_lft 1797sec
inet6 fe80::20c:29ff:febc:61a4/64 scope link
valid_lft forever preferred_lft forever
这样就没问题了