当我们在真实主机中连接无线网络后,真实主机可以上网,但真实主机中的虚拟机无法连接外网。这是由于我们的虚拟机为单网卡主机,该网卡上设置的IP接口需要和真实主机在同一个网段内,用来和真实主机进行通信。如果想实现虚拟主机中连接外网的功能,我们需要把双网卡的真实主机变成路由器,用来为虚拟主机和外网提供通信接口。
实验步骤:
1)在真实主机中连接wifi,测试可以连接外网(14.215.177.38为百度IP),接着开启真实主机的防火墙,进一步开启地址伪装功能,把双网卡真实主机变成路由器
2)在虚拟机中测试,无法ping通外网,此时网关没有设置
3)查看真实主机的桥接br0网络接口,通过该接口可以将虚拟主机的网卡和真实主机的网卡直接连接起来即桥接,使虚拟主机和真实主机可以正常通信
4)将虚拟主机中网络接口的网关设置为br0:172.25.254.33,网关设置完成后虚拟主机可以ping通外网14.215.177.38
方法一:图形方式设置网关(永久设定)
使用nmcli-connection-editor
命令进入图形界面,输入网关,重启网络接口
方法二:命令方式设置网关(临时设定)
ip route add defult via 172.25.254.33 ##设定默认网关为172.25.254.33 ip route del defult via 172.25.254.33 ##删除默认网关172.25.254.33
方法三:文件方式设置网关(永久设定)
a. 修改全局网关配置文件
修改全局网关配置文件/etc/sysconfig/network
,重启网络接口,route -n
查看网关
b. 修改网卡网关(局部网关)配置文件
修改网卡网关配置文件/etc/sysconfig/network-scripts/ifcfg-xxxx
,重启网络接口,route -n
查看网关
注意: 修改网卡网关配置文件/etc/sysconfig/network-scripts/ifcfg-xxxx
过程中
当网卡中设定的IP只有一个时:GATEWAY=172.25.254.20
当网卡中设定的IP有多个时,只针对于那个IP生效:GATEWAY0=172.25.254.20
c. 局部网关配置优先级 > 全局网关配置优先级
修改网卡网关配置文件/etc/sysconfig/network-scripts/ifcfg-xxxx
,设置网关为172.25.254.100,此时全局网关配置文件/etc/sysconfig/network
中网关设定仍为172.25.254.33,重启网络接口,route -n
查看网关为172.25.254.100,这是由于全局网关设置只针对所有没有设定网关的网卡生效
dns—domain name server指的是域名解析服务,即把域名转换为IP地址。系统操作者对字符敏感,而系统网络通信需要通过IP地址这个数字。例如,操作者输入的www.baidu.com这个网址不是一个可以通信的IP地址,必须要在系统中把www.baidu.com变成百度服务器的IP地址,操作者才能通过系统访问百度,这样的过程叫做地址解析。
虚拟主机中没有dns服务,无法识别操作者输入的域名,我们可以通过以下三种方式为其提供地址解析功能。
实验步骤:
1)网关设置完成后虚拟主机可以ping通外网14.215.177.38,但无法ping通www.baidu.com
2)配置地址解析服务
方式一: vim /etc/hosts
/etc/hosts是虚拟主机的本地解析文件,在此文件中进行ip 域名
设定,设定完成后直接生效提供地址解析,可以ping通www.baidu.com
方法二:vim /etc/resolv.conf
/etc/resolv.conf 是dns服务的指向文件,在此文件中进行nameserver dns服务器IP
设定,不需要重新启动网络立即生效,当虚拟主机需要某个域名的IP地址时,系统去问指定的dns服务器
方法三:vim /etc/sysconfig/network-scripts/ifcfg-xxxx
在网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-xxxx中对该接口的dns进行设定,如DNS1=114.114.114.114
,这种设定方式需要重启网络才能生效,当网络重新启动,此参数设定会覆盖掉dns服务指向文件/etc/resolv.conf中的设定
系统默认 /etc/hosts 中dns解析设定的优先级高于 /etc/resolv.conf,我们可以通过修改定义优先级的配置文件 /etc/nsswitch.conf,更改优先级。
实验步骤:
1)修改/etc/hosts中的dns解析设定,将www.baidu.com对应的IP设定为172.25.254.33(真实主机的IP)
2)在 /etc/resolv.conf 中,设定提供dns服务的服务器IP:114.114.114.114
3)ping www.baidu.com,得到的是从172.25.254.33返回的数据,由此可见/etc/hosts中的设定生效,优先级更高
4)修改定义优先级的配置文件 /etc/nsswitch.conf,使得dns指向服务优先
5)ping www.baidu.com,得到的是从36.152.44.95(百度)返回的数据,优先级设定成功
之前所说的网络接口配置都是操作者直接指定一个IP,当我们将设备工作方式设置为dhcp时,dhcp服务会为系统随机分配一个IP。在说明dhcp网络配置相关服务前,我们需要为真实主机安装dhcp服务。
a)dhcp服务配置
实验步骤:
1)在真实主机中找到dhcp server的安装包,安装dhcp服务
2)dhcp服务配置文件的存放路径为 /etc/dhcp ,安装完成后配置文件为空,用模板生成dhcp服务的配置文件
3)修改dhcp服务的配置文件
4)配置文件修改完成后,重启dhcp服务,查看dhcp服务能否正常启动,接着可以通过dhcp网络设定测试服务能否正常使用
b)dhcp网络设定
实验步骤:
1)编辑虚拟主机中网卡连接的配置文件/etc/sysconfig/network-scripts/ifcfg-ens3,将设备工作方式设置为dhcp
2)重启网络连接,查看IP,可以看到由dhcp服务分配的IP为172.25.254.60,网关为172.25.254.33,dns指向为114.114.114.114,与我们在dhcp配置文件中的设定一致
c)dns指向的固定
当网络工作模式为dhcp时,系统会自动获得ip 、网关、 dns,如果我们在dns指向文件/etc/resolv.conf进行设定,重启网络后,/etc/resolv.conf中的设定会被由dhcp服务自动获取到的dns修改掉。如果不需要自动获取dns信息,我们可以在网卡配置文件中加入PEERDNS=no
参数,固定dns指向。
实验步骤:
1)dhcp服务配置文件中设定的dns为114.114.114.114,在dns指向文件/etc/resolv.conf中设定dns为172.25.254.250,重启网络,查看指向文件,其中dns的设定为114.114.114.114,被修改
2)修改网卡配置文件,重新在dns指向文件/etc/resolv.conf中设定dns为172.25.254.250
3)重启网络,查看dns指向文件,其中dns的设定未被修改