有不少人会在真机上连wifi,但给虚拟机却不会,查百度后也不会连,就算成功例也是知其然,却不知其所以然,如果你知道了其原理,相信其他人一定会对你刮目相看。本节将由本人带着大家来领略一下其中的奥秘,都让一让,我要开始装逼了!
先来个开胃菜:将一个虚拟机做成路由器。
在做实验之前先要讲一下什么是路由器,其原理简单说一下。
路由器想必大家都不陌生,在家里连wifi都用到它,它可以连接不同的网络,在现实生活中,网络划分为A类,B类,C类等不同的网段,在不同网段中的设备不可以直接通信,当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
通俗的讲就是ip为1.1.1.10的电脑1不能直接和ip为172.25.70.10的电脑2直接通信,需要有一个中间人,就是路由器,所以它最起码要有俩块网卡,比如一块ip为1.1.1.9,另一块ip为172.25.70.9,电脑1可以发送数据给路由器,因为它有一块网卡ip与电脑1处在相同网段中,路由器再把数据有网段1伪装成网段2,再经过另一块网卡转发给电脑2。(因为路由器的俩块网卡在同一主机里,所以可以转发数据)
先做个实验,将一台虚拟机1ip改为1.1.1.10(与真机处在不同网段),将令一台虚拟机2改成路由器,让虚拟机1通过1虚拟机2可以ping同真机,就算在真机上查谁访问过它,也只能查出是虚拟机2。
在真机中用virt-manager命令进入虚拟机管理器中给desktop虚拟机一块网卡,给虚拟机server俩块网卡
将desktop的ip设置为1.1.1.10
将server一块网卡设为1.1.1.9,另一块设为172.25.70.9
用server虚拟机ping真机或ping虚拟机desktop都可以ping通,而虚拟机desktop只能ping通虚拟机server。
虚拟机server:
虚拟机desktop:
此时需要将desktop的网关(GATEWAY)设为路由器server的一个ip1.1.1.9(网关就是主机在跨网段传输数据时先给处于同网段的路由器网卡发送数据,这个网卡的ip就是主机的网关)
没设之前:
设置之后:vim /etc/sysconfig/network(在文件里面加GATEWAY=1.1.1.9),然后重启网络配置
设置完之后再到server端查看它的路由功能开启没
sysctl -a |grep ip_forward (结果为0则路由功能关闭,为1则开启)
将server端的路由功能开启
vim /etc/sysctl.conf
使之生效用命令sysctl -p
路由功能生效后要开启server端的伪装地址功能
首先开启防火墙,systemctl start firewalld
然后查看防火墙的状态用命令,firewall-cmd --list-all
然后永久开启防火墙的伪装功能firewall-cmd --permanent --add-masquerade
重新加载firewall-cmd --reload,然后再次查看
测试:
在desktop端ping真机ip,如果可以ping通则说明实验成功
用sshd服务登陆真机,看其地址(其实是ip为1.1.1.10的虚拟机登陆了真机,但真机显示的是ip为172.25.70.9的路由器登陆了它)
看到这里估计有很多朋友会说,让虚拟机联网就是把真机当成一个路由器,然后通过真机联网,其实就是如此,但如果仅仅这么简单那你就太天真了。
真机有好几个ip,找一个作为虚拟机的网关(全都和上面步骤一样),已经将真机作为了路由器,但是ping www.baidu.com时还是有问题,不同,真机就能ping的通。
但是虚拟机desktop在ping百度的ip时就能ping通,在网页搜时也只能找到百度的ip,不能通过名字进入百度。(这就说明虚拟机其实已经连上网了,只不过不能解析域名)
我们可以在本地解析文件中写如网址与对应ip,主机就能知道遇到这个网址改找谁
编辑文件vim /etc/hosts
然后在网页中输入www.baidu.com就可以进入百度,但点入其中的新闻则又不行了,因为在本地解析文件中没有写入其网址与对应ip,所以主机在看到你要找的网址时还是一脸蒙,不知道该区哪找。所以在本地解析文件中写入网址与对应ip是不现实的。(但是它快,不需要任何人的帮助就可以找到)
所以我们需要令一种方法,即dns服务器
dns服务器是运营商专门做的域名解析服务器,
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。
编辑文件vim /etc/resolv.conf
电信dns服务器ip为114.114.114.114
此时直接输入任何网址都可以找到了。
虚拟器联网正式成功!