VMware下static IP无法访问外网,DNS问题解析

时间:2024-03-23 19:00:36

放假前课程设计,同学的虚拟机无法访问网络,帮他进行排错也没有能解决。

今天在自己的电脑上顺利解决,发一些小收获。

VMware下使用NAT,虚拟机内进行DHCP,访问一切正常。而static IP时发现局域网可以互相ping通,但是外网无法正常访问,这里可以猜测是DNS出现了问题。

 

以下内容注意查看自己的虚拟网卡分配地址所在子网,关闭所有虚拟机进行修改和查看。

VMware下static IP无法访问外网,DNS问题解析

VMware下static IP无法访问外网,DNS问题解析

VMware下static IP无法访问外网,DNS问题解析

 

VMware下static IP无法访问外网,DNS问题解析

这里有子网所在网段,选择NAT设置。

VMware下static IP无法访问外网,DNS问题解析

子网内.2设备不仅是网关还是DSN服务器和WINS服务器,也就是后文GATEWAY=填.2设备的原因。没有网关地址,不能访问外网,但是内网OK。

开篇讲一下关于虚拟机网络适配器的内容:

VMware下static IP无法访问外网,DNS问题解析

  1. 桥接模式:复制物理机当前连接状态,如果你的物理机通过路由器进行NAT访问外网,那么虚拟机(DHCP)在这种情况下也会获得路由器DHCP的地址,物理机和虚拟机将处于同一个网段。
  2. NAT模式:通过虚拟网卡进行虚拟化,这个时候你的物理机就成了NAT设备,效果上等同于路由器。
    • 这里需要注意,如果是校园网(譬如有锐捷等软件进行认证的,十之八九NAT服务会被强制关闭,802.1X认证服务)
  3. 仅主机模式:虚拟机只能访问物理主机,无法访问外网。

实验环境:CentOS7(NAT)

[[email protected] ~]# nmtui (6系列使用setup进入)
或者
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33  (6系列为eth0)

BOOTPROTO=dhcp #dhcp,static,none(不指定,默认静态)

注:ONBOOT=yes (这个选项一定要为yes,系统启动时自动**网卡)

选中Edit a connection,enter;

再enter修改ens33,

VMware下static IP无法访问外网,DNS问题解析

选择自动,tab结合小键盘退出。

[[email protected] ~]# systemctl restart network
[[email protected] ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=1 ttl=128 time=25.9 ms

DNS解析正常。

设置静态IP:

考虑到多个虚拟机静态方便XShell等软件进行连接

VMware下static IP无法访问外网,DNS问题解析

或者修改配置文件为BOOTPROTO=none

重启服务后

[[email protected] ~]# ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=0.162 ms
[[email protected] ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known

这里猜测是DNS问题。

[[email protected] ~]# cat /etc/resolv.conf  #DNS配置文件
# Generated by NetworkManager

resolv.conf为DNS配置文件

这里DNS为空,我们回头换成DHCP模式查看一下DNS,对比一下,这里建议两台虚拟机切换对比。

[[email protected] ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 192.168.88.2

发现DNS服务为子网内.2设备,由此可以子网内.2设备被设置为了DNS服务器。

因此静态IP时,需要设置DNS参数,可以指定本地的DNS服务器,也可以设置外网的DNS服务器。

/etc/sysconfig/network-scripts/ifcfg-ens33中添加

GATEWAY=192.168.88.2
DNS1=114.114.114.114或者DNS1=192.168.88.2

这里需要注意网管设置为.2设备。 

[[email protected] ~]# ip route show
default via 192.168.88.2 dev ens33 proto static metric 100 

测试, 

[[email protected] ~]# ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=0.162 ms

至此,VMware下静态IP DNS问题解决。

以后开机就可以方便的使用Xshell进行连接,多个虚拟机之间切换操作了。
希望以上内容对您有所帮助。