放假前课程设计,同学的虚拟机无法访问网络,帮他进行排错也没有能解决。
今天在自己的电脑上顺利解决,发一些小收获。
VMware下使用NAT,虚拟机内进行DHCP,访问一切正常。而static IP时发现局域网可以互相ping通,但是外网无法正常访问,这里可以猜测是DNS出现了问题。
以下内容注意查看自己的虚拟网卡分配地址所在子网,关闭所有虚拟机进行修改和查看。
这里有子网所在网段,选择NAT设置。
子网内.2设备不仅是网关还是DSN服务器和WINS服务器,也就是后文GATEWAY=填.2设备的原因。没有网关地址,不能访问外网,但是内网OK。
开篇讲一下关于虚拟机网络适配器的内容:
实验环境:CentOS7(NAT)
[root@localhost ~]# nmtui (6系列使用setup进入)
或者
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 (6系列为eth0)
BOOTPROTO=dhcp #dhcp,static,none(不指定,默认静态)
注:ONBOOT=yes (这个选项一定要为yes,系统启动时自动激活网卡)
选中Edit a connection,enter;
再enter修改ens33,
选择自动,tab结合小键盘退出。
[root@localhost ~]# systemctl restart network
[root@localhost ~]# 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
重启服务后
[root@localhost ~]# 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
[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
这里猜测是DNS问题。
[root@localhost ~]# cat /etc/resolv.conf #DNS配置文件
# Generated by NetworkManager
resolv.conf为DNS配置文件
这里DNS为空,我们回头换成DHCP模式查看一下DNS,对比一下,这里建议两台虚拟机切换对比。
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.88.2
Ubuntu 16.04以上版本可以使用
root@localhost:~#networkctl status
● State: routable
Address: 192.168.88.6 on ens33
fe80::20c:29ff:fe48:4b60 on ens33
Gateway: 192.168.88.2 (VMware, Inc.) on ens33
DNS: 192.168.88.2
Search Domains: localdomain
发现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设备。
[root@localhost ~]# ip route show
default via 192.168.88.2 dev ens33 proto static metric 100
测试,
[root@localhost ~]# 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进行连接,多个虚拟机之间切换操作了。
希望以上内容对您有所帮助。