1. 使用虚拟机访问百度
首先,我们要将desktop虚拟机设置为路由器(eth0 ip:172.25.254.132 eth1 ip:172.25.55.251),server虚拟机(eth0 ip=172.25.254.232)通过路由器可以访问主机(ip=172.25.55.250)。详细请看我的博客:linux的网络设置4.设置路由的操作。
接下来我们要做以下设置:
- 第一步:在作为路由器(有两个ip)的虚拟机中,在与主机在同一网段的ip(172.25.55.251)中设置:vim /etc/sysconfig/network-scripts/ifcfg-west
- 第二步:在主机中设置防火墙。
关闭虚拟机服务,再开启虚拟机服务。
- 第三步:设置内核的路由功能
- 第四步:用主机ping百度(如图1),我们可以看到百度的ip,在虚拟机我们ping ip(如图2)可以ping通则设置成功。因为虚拟机中没有DNS域名解析。
图1
图2 - 第五步:此时作为路由的虚拟机desktop可以访问百度,ping 百度ip。要使server虚拟机也可以,在desktop虚拟机中做以下操作。
desktop虚拟机(node)可以ping 172.25.55.250(主机)与ping 182.232.231.172(百度)
- 问题一:如果虚拟机可以ping通主机,主机可ping通百度,但是虚拟机不能ping通百度,则执行sysctl -p命令,命令返回如图3所示,则说明此功能正常。若无返回,则进行图1所示操作查看内核的路由功能,要使命令返回为net.ipv4.ip_forward=1才能解决这个问题。在sysctl.conf文件中的修改如图2所示。
图1
图2
图3 - 问题二:同一网段ping不通,可能时网卡有问题。我们可以删除网卡,再创建新的网卡。删除网卡时要注意出问题的网卡是哪个,
删除网卡后再添加网卡:
- 问题三:主机ping不到百度。网络出现问题,可重联wifi。如下图所示,ping不到百度后,我们可以使用route -n命令查看主机是否联网(是否有网关),如果没有网关,则说明主机联网有问题。重联网络后,查看网关,再次联网。
2.DNS域名解析
通过上面的操作我们发现用主机我们可以直接ping www.baidu.com,但是虚拟机ping百度时不能使用域名,只能ping 183.232.231.172。这是因为主机中有域名解析,可将域名转为ip,而虚拟机中没有。DNS提供域名解析服务,我们可以在虚拟机中设置DNS域名解析。
- 方法一:
在要设置的虚拟机(我选取的是作为路由的desktop虚拟机)下做以下操作:
vim /etc/hosts (本地解析文件),我们将知道的域名和ip记录进去。(如图2)。我们可以在图一中看到在设置DNS之前,我们是使用ping 183.232.231.172来连接百度,设置DNS后我们可以直接ping www.baidu.com。
/etc/hosts文件中要写的内容:
- 方法二
vim /etc/resolv.conf (DNS导向文件),添加nameserver 114.114.114.114(如下图)可以帮助我们进行域名解析。
- 优先级
(1)默认本地解析文件优先级高与DNS导向文件,可查看/etc/nsswitch.conf文件(如下图)
(2)我们可以通过设置/etc/nsswitch.conf文件改变优先级。
此时,我们可以看到我们ping www.baidu.com时,ip不是我们之前在本地解析文件中设置的183.232.231.172,而是183.232.231.173。
当我们网络是dhcp时,我们在vim /etc/resolv.conf文件中输入的东西,更新网络后会消失,可在写ip的文件中加PEERDNS=no.
3. nmcli
从下图中我们可以看到nmcli命令后面可以操作的字符有那些。通过Tab补齐键可以帮我们了解字符后可跟的字符和参数有哪些,让我们对此命令有个大致了解,方便操作。或者通过man nmcli ,nmcli --help。
nmcli device disconnect eth0断开了eth0的连接,此时我们查看不到eth0的ip,重新连接后,可以查看eth0的ip。
我们可以通过下图的语句来设置ip。
nmcli connection delete westos,此时查看ip会发现eth1没有ip。
modify意为修改,下面这条语句是修改ip使用。