实现虚拟机上网及域名添加
一.虚拟机上网
1.首先将真机变为路由器
systemctl stop libvirtd 关闭虚拟机的libvirtd服务(因为防火墙与虚拟机服务有冲突)
systemctl restart firewalld 启动火墙(火墙打开才会有地址伪装功能)
systemctl start libvirtd 重启虚拟机libvirtd
firewall-cmd --permanent --add-masquerade(地址伪装) 开启真机的路由器功能
firewall-cmd --reload 更新防火墙规则
firewall-cmd --list-all 显示真机的路由器列表,查看是否配置成功
注意:以上操作需进入“root”模式
systemctl stop libvirtd 关闭虚拟机的libvirtd服务(因为防火墙与虚拟机服务有冲突)
systemctl restart firewalld 启动火墙(火墙打开才会有地址伪装功能)
systemctl start libvirtd 重启虚拟机libvirtd
firewall-cmd --permanent --add-masquerade(地址伪装) 开启真机的路由器功能
firewall-cmd --reload 更新防火墙规则
firewall-cmd --list-all 查看是否配置成功
提示:当我们看到上述内容时,
masquerade:yes
yes表示的我们将真机的路由器功能配置成功,但是如果是no的话,就是没有配置成功
2.查看当前主机ip
方法一:
ifconfig 查看所有的网卡设备信息
方法二:
ip addr show br0 直接查看 br0文件
当前真机ip为:172.25.254.67
3.设置虚拟机
vim /etc/sysconfig/network 全局网关,针对所有没有设定网关的网卡生效
GATEWAY=172.25.254.67
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.67 当网卡中设定的ip有多个时,指定对于那个ip生效
GATEWAY=172.25.254.67 当网卡中设定的ip只有一个时
route -n 查看网关是否生效
使用ifconfig
查看虚拟机网卡信息 如果发现有多张张网卡 则不可以使用全局网关设定
4.设置完成后,在真机中ping
百度 ,获得百度的ip.之后在虚拟机中ping
百度的ip
由此可得百度的ip是180.97.33.108
注意:
如果ping 不通百度 .但步骤正确.可在真机中删除虚拟机所有网卡,且重新分配网卡,并重复虚拟机中网卡配置步骤.
删除与重建网卡步骤:
1.真机中执行virt-manager
2.点击Desktop选择Open在点击左上方小灯泡,选择网卡,点击Rmove,选择Yes
3.删除后点击左下方Add Hardware然后选择Network在Device model中选择virtio,选择右下角Cancel
二.域名的添加(DNS)
1.DNS是什么:
域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析.
2.手动添加
查询百度域名 :220.181.112.244
vim /etc/hosts
手动添加百度域名可以直接ping通网址
3.自动解析
为了避免繁琐.手动解析过于麻烦,所以可以使用自动解析
vim /etc/resolv.conf
先查询真机的服务器的IP地址.
在虚拟机中打开
vim /etc/resolv.conf
将nameserver修改为:192.168.43.1
添加完成后就不需要添加域名都可以ping通了比如
ping www.taobo.com
ping www.tianmao.com
ping www.4399.com
注意:
当网络工作模式为dhcp时
系统会自动获得ip 网关 dns
那么/etc/resolv.conf会被获得到的信息修改
如果不需要获得dns信息
PREEDNS=no
4.设定解析的优先级
系统默认:
/etc/hosts > /etc/resolv.conf ##前者优先级高于后者
vim /etc/nsswitch.conf
hosts: files dns /etc/hosts优先
将dns 添加到前面 ,
etc/resolv.conf dns 指向优先
比如: 将天猫的ip故意写错
在pin天猫
会发现依然ping通 因为dns有优先权所以解析正确