Linux操作系统主机下的两台虚拟机如何上网

当两台主机的IP不在同一网段时,其中一台主机想要通过另外一台主机上网,如何连通:

    主要思想如下图:


    例如:IP为2.2.2.10的desktop如何ping通IP为172.25.75.250的主机?
         用server作为一个路由来连接desktop与主机,所以server需要两个网卡,eth1用来作为入口eth0 作为出口。所以首先需要给server添加一个网卡,具体操作如下:

1.打开server虚拟机,点击灯泡,会出现如下界面

2.点击此界面左下方的Add Hardware,会出现如下界面,选择Network,并且Device model必须选择virtio,表示虚拟io。

这样一个网关就算添加成功了,接下来就要分别设置各个虚拟机的IP,网关等等,首先来配置以下server的eth0和eth1,操作命令如下,首先打开server虚拟机,配置eth0网卡

该文件配置如下:

配置完成后,要记得重启网络,如下图,重启网络后如果IP变成了你设置的IP就成功了

接下来配置eth1

配置文件如下:

然后重启网络

最后,开启地址伪装/火墙策略

接下来打开desktop虚拟机,配置desktop的网络。

配置文件如下

然后重启网络

desktop就算是配置完成了,可以ping以下server和主机,看看能不能通

我这里都可以ping通了,但是我最开始的时候也是有问题的,操作都没有问题。desktop能ping通server的任意网卡,但是不能ping通主机,所以这里就要考虑以下是不是server出现问题了。首先,我排除了地址伪装的问题,我的确是开启了。所以可能是配置内核参数的问题。这里我百度了一下sysctl命令,可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。如果出现操作没有问题,那么可以编辑/etc/sysctl.conf文件,如过该文件有net.ipv4.ip_forward=0,只需将0改为1。如果该文件下没有net.ipv4.ip_forward=1,只需加上这句就可以立即开启路由功能。

如果还想让desktop通过server再通过主机连接到百度,那么还需要两步操作。首先,把主机连上wifi,然后给主机加上地址伪装就可以让desktop上网了。这里需要注意,上网的是指可以ping通IP,但是不可以ping通域名,如果要想访问域名,还需加上DNS域名解析。

我这里的主机已经开启了地址伪装,如果没有开启地址伪装,只需要再执行开启地址伪装的命令(firewall-cmd --add-masquerade)。

猜你喜欢

转载自blog.csdn.net/lm236236/article/details/83275698
今日推荐