linux中虚拟机的网络及DNS配置
一.用desktop虚拟机为客户端链接百度,经过server虚拟机和真机(把server虚拟机和真机当作路由)。真机ip为172.25.254.781.设置desktop虚拟机的ip为78.78.78.78--vim /etc/sysconfig/network-scripts/ifcfg-eth0更改eth0的网络配置文件--systemctl restart network(...
一.用desktop虚拟机为客户端链接百度,经过server虚拟机和真机(把server虚拟机和真机当作路由)。真机ip为172.25.254.78
1.设置desktop虚拟机的ip为78.78.78.78
--vim /etc/sysconfig/network-scripts/ifcfg-eth0 更改eth0的网络配置文件
--systemctl restart network (重启网络服务)
--ping 172.25.254.78(试图连通物理机,此处显示不能连通)
--在真机下:ping 172.25.254.78 (显示可以连通)
2.给server虚拟机添加网卡,并设置
--eth0的ip:172.25.254.78
--vim /etc/sysconfig/network-scripts/ifcfg-eth0 更改eth0的网络配置文件
--systemctl restart network(重启网络服务)
--在设置erver虚拟机下,eth1的ip:78.78.78.178
--vim /etc/sysconfig/network-scripts/ifcfg-eth1 更改eth1的网络配置文件
--systemctl restart network(重启网络服务)
3.由于server虚拟机是路由,因此在路由器上开启地址伪装功能
--systemctl status firewalld.service (查看防火墙的状态,没有打开需要打开防火墙)
--firewall-cmd --add-masquerade (打开路由的伪装功能)
--firewall-cad --list-all (查看是否打开成功,masquerade后面是yes表示打开成功)
4.设置desktop虚拟机的网关为78.78.78.178
--vim /etc/sysconfig/network-scripts/ifcfg-eth0 更改eth0的网络配置文件
添加GATEWAY=78.78.78.178
5.经过上上述步骤,两台虚拟机可以相互ping通,但若是server可以ping通真机,但是desktop不能ping通,说明内核的路由功能没有开启,在server虚拟机执行以下命令:
--sysctl -a | grep ip_forward (查看内核路由功能,如果是0表示没有开启,1表示开启成功)
--vim /etc/sysctl.conf (在此文件中添加开启内核)
net.ipv4.ip_forward=1
--sysctl -p (让配置文件生效)
6.此是,desktop可以ping通server虚拟机,可以通过ping通真机,但是不能通过ping百度的ip,此时,真机连上wifi连接,可以ping通百度,这是因为对server虚拟机来说,即是客户端,也是路由,作为路由可以让desktop虚拟机ping通真机,作为客户端时,也需要设置网关(网关和真机的ip相同),同时,在真机打开防火墙的地址伪装功能和内核路由功能。同设置server路由一样步骤一样,设置真机。
--先给server虚拟机设置网关为172.25.254.78(eth0)
--systemctl status firewalld.service (查看防火墙的状态,没有打开需要打开防火墙)
--firewall-cmd --add-masquerade (打开路由的伪装功能)
--firewall-cmd --list-all (查看是否打开成功,masquerade后面是yes表示打开成功)
(注:如果防火墙配置出现问题,用以下命令解决:
systemctl stop libvirtd.service ##关闭与虚拟机的连接
systemctl restart firewalld.service ##重启防火墙
firewall-cmd --add-masquerade ##添加地址伪装
success ##成功添加
firewall-cmd --list-all ##查看地址伪装是否开启
virt-manager ##虚拟机管理
systemctl start libvirtd.service ##开启与虚拟机连接)
--sysctl -a | grep ip_forward (查看内核路由功能,如果是0表示没有开启,1表示开启成功)
--vim /etc/sysctl.conf (在此文件中添加开启内核)
net.ipv4.ip_forward=1
--sysctl -p (让配置文件生效)
注:完成上述操作后,用desktop虚拟机可以ping通百度IP。
注意的问题:如果desktp虚拟机ping不通百度ip时,注意检查desktop虚拟机网关,server虚拟机是否打开了路由伪装和内核路由功能,真机是否打开的伪装和内核路由功能。如果此时还是ping不同,将server虚拟机的网卡删除,重新创建网卡。
二,DNS配置
基于上述步骤,当用desktop虚拟机ping www.baidu.com,显示错误,客户端并不知道www.baidu.com是什么,必须用百度的IP才可以ping通,这是因为虚拟机没有配置DNS域名解析。
1.设置域名解析有两种方式:
方法一.更改本地域名解析文件
--vim /etc/hosts
添加 61.135.169.125 www.baidu.com
--ping www.baidu.com 可以ping通
方法二.更改DNS指向性文件
--先将百度本地解析删除,再进行此步骤
--vim /etc/resolv.conf
添加 nameserver 114.114.114.144
--ping www.baidu.com 可以ping通
(114.114.114.114相当于一个域名解析库,当没有本地解析时,通过114.114.11.114查看对应域名的ip地址)
2.设定DNS解析的优先级
默认本地解析的优先级高,可以更改优先级。
files代表本地解析,dns代表指向性文件
--此时将百度的ip改为真机ip
--vim /etc/nsswitch.conf
39 hosts: files dns ##本地解析优先
vim /etc/nsswitch.conf
39 hosts: dns files ##指向性文件优先
3.动态(dhcp)DNS配置下,如何指定自己设置的DNS
--vim /etc/sysconfig/network-scripts/ifcfg-eth0
--将BOOTPROTO改为dhcp
--将PEERDNS=no
注:PEERDNS=yes 是否指定DNS,当主机设置获取IP为dhcp方式时,此项参数默认为yes,它会自动修改/etc/resolv.conf文件,当参数设置为no,在dhcp方式下,系统不会修改/etc/resolv.conf文件
--DNS1=114.114.114.114
(DNS1,这里不能是DNS0,后面跟的数字只能从1开始)
三,命令的方式修改网络
命令方式设定网络nmcli
nmcli device connect eth0 ##启用eth0网卡
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli device show eth0 ##查看网卡信息
nmcli device status eth0 ##查看网卡服务接口信息
nmcli connection show (显示所有网络链接)
nmcli connection down westos (关闭指定链接)
nmcli connection up westos (打开指定连接)
nmcli connection delete westos (删除westos链接)
nmcli connection add type ethernet con-name westos ifname eth0 ip4 172.25.254.100/24(添加静态网络)(ifname 添加网卡eth0,重启systemctl restart network生效)
nmcli connection modify “westos” ipv4.method auto (改变westos的工作方式为动态)
nmcli connection modify “westos” ipv4.method manual (改变westos的工作方式为静态)
nmcli connection modify “westos” ipv4.addresses 172.25.254.150/24 (改变wetos的ip)(重启systemctl restart network ,ip地址改变为所设定的172.25.254.150/24 )
注:nm-connection-editor (修改connection name , 从eth0变为westos,可以用nmcli connection show 查看connection name)
更多推荐
所有评论(0)