放假前课程设计,同学的虚拟机无法访问网络,帮他进行排错也没有能解决。
今天在自己的电脑上顺利解决,发一些小收获。
VMware下使用NAT,虚拟机内进行DHCP,访问一切正常。而static IP时发现局域网可以互相ping通,但是外网无法正常访问,这里可以猜测是DNS出现了问题。
以下内容注意查看自己的虚拟网卡分配地址所在子网,关闭所有虚拟机进行修改和查看。
这里有子网所在网段,选择NAT设置。
子网内.2设备不仅是网关还是DSN服务器和WINS服务器,也就是后文GATEWAY=填.2设备的原因。没有网关地址,不能访问外网,但是内网OK。
开篇讲一下关于虚拟机网络适配器的内容:
- 桥接模式:复制物理机当前连接状态,如果你的物理机通过路由器进行NAT访问外网,那么虚拟机(DHCP)在这种情况下也会获得路由器DHCP的地址,物理机和虚拟机将处于同一个网段。
- NAT模式:通过虚拟网卡进行虚拟化,这个时候你的物理机就成了NAT设备,效果上等同于路由器。
- 这里需要注意,如果是校园网(譬如有锐捷等软件进行认证的,十之八九NAT服务会被强制关闭,802.1X认证服务)
- 仅主机模式:虚拟机只能访问物理主机,无法访问外网。
实验环境: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,
选择自动,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等软件进行连接
或者修改配置文件为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进行连接,多个虚拟机之间切换操作了。
希望以上内容对您有所帮助。