解决Ubuntu虚拟机NAT不能上网的几种方法小结
作者:duapple
vmware安装ubuntu虚拟机后,网络经常抽风,也不知道具体是什么原因导致的,有时候开机就不能上网,有时候,是突然不能上网,这个时候,尝试重启虚拟机后者电脑,看看能否解决,或者使用下面的方法看看
1. 设置DHCP
当ens33网卡有IP,但是不能上网。尝试,设置网卡为DHCP。
2. 重启VMnet8网卡
禁用VMnet8网卡后,再启用。
3. 修改DNS地址
修改/etc/resolv.conf
文件,DNS服务器地址为114.114.114.114
。
4. 使用dhclient
以上都不行的话,执行下面的命令。
sudo dhclient ens33
原理: 重新自动配置IP和路由表。如果查看路由表没有默认网关,或者默认网关不对,使用这个命令就行,或者自己手动配置。但是虚拟机的网卡有些问题,有时候的网关主机是192.168.xx.2,并不是192.168.xx.1。
经过上面的某一部操作,应该就可以上网了。
上面的步骤是自动配置网卡连接的。手动配置连接和执行上面的命令结果是一样的。
主要命令:
sudo nmcli con del ens33 # 删除当前连接 sudo nmcli con add ifname ens33 con-name ens33 type ethernet # 添加一个新连接 sudo nmcli con mod ens33 ipv4.method auto ipv4.addr 192.168.8.6/24 ipv4.dns 8.8.8.8 # 配置新链接的网络参数:是否DHCP,IP地址/子网掩码,DNS服务器地址 sudo nmcli dev con ens33 # 重启连接使配置生效
配置静态IP使用 ipv4.method manual
参数。
执行上述命令后,虚拟机是能够正常上网了, 如果 主机ping 不通虚拟机。还需要重新设置一下路由表:
# route -n 内核 IP 路由表 目标 网关 子网掩码 标志 跃点 引用 使用 接口 0.0.0.0 192.168.134.2 0.0.0.0 UG 101 0 0 ens38 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens37 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37 192.168.134.2 0.0.0.0 255.255.255.255 UH 20101 0 0 ens38 192.168.134.130 0.0.0.0 255.255.255.255 UH 101 0 0 ens38
上述路由表信息最后两条是有问题的,因此需要删除掉,重新添加:
sudo ip route del 192.168.134.2 sudo ip route del 192.168.134.130 sudo ip route add 192.168.134.0/24 dev ens38
修改后的路由表:
$ route -n 内核 IP 路由表 目标 网关 子网掩码 标志 跃点 引用 使用 接口 0.0.0.0 192.168.134.2 0.0.0.0 UG 101 0 0 ens38 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens37 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37 192.168.134.0 0.0.0.0 255.255.255.0 U 0 0 0 ens38
这时,主机能够ping 通虚拟机了,并且虚拟机也是能够正常上网了。
以上就是解决Ubuntu虚拟机NAT不能上网的几种方法小结的详细内容,更多关于决Ubuntu虚拟机NAT不能上网的资料请关注脚本之家其它相关文章!