在虚拟机的使用过程中,本机可以连接WIFI直接上网,但是有时候需要用到虚拟机的联网,那么在本机联网的情况下,虚拟机怎么联网呢?接下来将介绍如何在本机已经连接到WIFI的情况下,使虚拟机上网。
虚拟机上网的原理就是将自己的本机制作成路由器,然后使虚拟机连接这个“路由器”来连接外网上网。
在本机上需要做如下配置:
1、如果本机本身有网关的话,删除自己的网关,因为作为路由器也是临时使用,所以建议用"#"注释掉即可。因为在连接上WIFI之后,会自动配置网关,防止出现影响。
2、连接上WIFI后,输入"ifconfig"查看本机ip和网络ip。如下图,可以看出本机ip为"172.25.254.2",网络ip为"192.168.43.28"。
3、输入"route -n"查看自动获取的网关,如下图,网关为"192.168.43.1"。
4、防火墙的策略
4.1 如果防火墙未开启,请先开启防火墙,然后输入"firewall-cmd --list-all"查看是否有防火墙策略,如下图所示,显示没有防火墙策略。
4.2 输入"firewall-cmd --permanent --add-masquerade"开启"masquerade",并且输入firewall-cmd --permanent --add-rich-rule=‘rule family="ipv4" source address=192.168.43.28 masquerade‘,如下图所示,"address=网络ip"。完成后重启防火墙服务,再次输入"firewall-cmd --list-all"可以看到防火墙策略。
至此,将本机作为路由器的配置已经完成。进入需要联网的虚拟机。
虚拟机的配置如下:
1、配置虚拟机的ip和本机处于同一个网段,本文所示虚拟机ip为"172.25.254.102"。
2、输入"route -n"查看虚拟机网关,如下图,将网关设置为本机ip。
3、设置完成后,尝试使用"ping"命令,ping本机ip和网络ip,下图显示和本机以及网络已经连通。
4、ping"www.baidu.com"发现无法连通,这表示虽然网络连通了但是无法通过域名上网。这时需要设置DNS为本机自动分配的网关"192.168.43.1"。
上述配置均完成后,输入"ping www.baidu.com"发现已经连通,此时代表虚拟机已经可以上网了。虚拟机联网的问题解决。
因为上述防火墙策略是临时使用的,在使用完成后需要删除之前的策略,删除方法如下图所示,先关闭"masquerade",再删除之前编辑的"rule family="ipv4" source address=192.168.43.28 masquerade",完成后重启防火墙服务即可。