虚拟机上外网

时间:2022-12-24 14:46:27

(虚拟机172.25.254.101,真机172.25.254.1):

真机器充当路由器的角色,通过snat功能将虚拟机到达的数据的内网ip段伪装成外网能识别的外网ip。

连接wifi查看wifi的ip:ifconfig查看为172.20.10.5

虚拟机上外网

通过几条防火墙策略将真机变成能把其他网段来的数据包伪装成172.20.10.5的机器,充当路由器功能。

首先确保防火墙status是开的

firewall-cmd --permanent --add-masquerade

firewall-cmd  --permanent --add-rich- rule 'rule family=ipv4 source address=172.20.10.5 masquerade’      #将虚拟机 的包伪装成172.20.10.5这个wifi的ip

firewall-cmd --reload           #刷新firewall状态

然后在虚拟机里配置网关为真机的ip:172.25.254.1

虚拟机上外网

然后重启网络,要想生效有可能还需要先关闭下systemctl stop NetworkManager.service。

现在虚拟机就可以通过输入ip访问外网了,注意这里不能是域名,输入www.baidu.com等是无法访问的,只有输入百度的ip(220.181.111.188)才能访问,为什么呢?因为没有dns域名解析服务,无法将域名对应成域名本身的ip

虚拟机上外网

先查看下真机连上wifi自动生成的dns:

虚拟机上外网

把真机的dns配置:‘nameserver 172.20.10.1’添加到虚拟机/etc/resolv.conf文件中即可,这样在虚拟机输入域名就可以访问外网了。

虚拟机上外网

tip:/etc/hosts是一个本地解析,也可以将一个ip对应一个域名,例如在虚拟机/etc/hosts里面加 上’220.181.111.188    www.baidu.com’ 这样一条就可以输入百度域名访问了,但成千上万的域名不可能在本地>一一手动输入。因此有dns服务,是一个能对应所有域名ip的互联网服务。这里 选择使用172.10.10.1这台dns互联网服务器帮我们做所有域名解析的工作。      

图解:

1.虚拟机ping外网

虚拟机上外网

2.真机ping外网

虚拟机上外网