计算机网络探究一之利用双网卡主机共享上网

网友投稿 769 2022-05-29

综述

大家好,这次我们需要实现的是实现双网卡主机共享上网,就是一台主机通过连接另一台可以访问外网的双网卡主机来正常上网。所以我们需要两台机器来进行测试,在这里我们用的是两台 Ubuntu 14.04,其中一台是单网卡,一台是双网卡。废话不多说,行动起来吧。

配置系统

博主使用了 Vmware 来安装了两台 Ubuntu 主机,一台当路由机,名称是 Ubuntu Route,另一台是客户机,名称是 Ubuntu Desktop,具体的网络配置如下: Ubuntu Route: 一个网卡 eth0 通过 NAT 方式来与外部主机共享上网,这个网卡也就是 VMnet8 网卡,网段是 192.168.231.0 另一个网卡 eth1 连接了一个自定义的仅主机模式的网卡 VMnet2,网段是 192.168.122.0 网络适配器设置如下,eth0 开启了 DHCP,ech1 没有开启 DHCP Ubuntu Desktop: 一个网卡 eth0 连接刚才那个自定义的仅主机模式的网卡 VMnet2,网段是 192.168.122.0 好了,以上就是基本硬件的配置

设置 IP

接下来我们设置一下 Ubuntu Route 的 IP 地址,修改 /etc/network/interfaces

1

2

3

4

5

6

7

8

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

auto eth1

iface eth1 inet static

address 192.168.122.4

netmask 255.255.255.0

在这里,eth0 因为我们在 VMware 里面设置了 DHCP,所以这里我们设置 dhcp 即可,eth1 需要手动配置一下,我们分配了 192.168.122.4 这个 IP 地址,当然你可以随意指定,子网掩码如上,不需要写网关,因为它本身作为一个路由。 可以通过执行如下命令来使之生效

1

sudo /etc/init.d/networking restart

如果上述方法不行,则可以尝试使用关闭网卡和开启网卡的命令。

1

2

sudo ifup eth0

计算机网络探究一之利用双网卡主机共享上网

sudo ifdown eth0

eth1 的开启和关闭同上

开启路由转发

修改 /etc/sysctl.conf 文件,将

1

net.ipv4.ip_forward=1

这一行取消注释,代表开启了路由转发功能。 也可以通过执行

1

echo 1 > /proc/sys/net/ipv4/ip_forward

命令来实现

设置 iptables 规则

iptables 是非常重要的一个环节,如果大家不熟悉,可以去搜相关资料了解一下。 执行如下命令,来设置一下 iptables 规则,可以直接在命令行逐条执行,也可以写成一个脚本来执行。

1

2

3

4

5

6

iptables -F

iptables -t nat -F

iptables -t mangle -F

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

其中最后一条是最重要的,代表将数据包通过 eth0 网卡来转发,也是 IP 伪装的一个常用方法,有了这条指令,从 eth1 网卡流经的一些数据包可以通过 eth0 来转发,这样就相当于连通了两个网卡,这样与 eth1 网卡连接的主机便可以上网了。

客户主机设置

因为客户机的 eth0 连接了 VMnet2 网卡,而 VMnet2 网卡又与路由主机的 eth1 连接,我们只需要简单设置一下 IP 地址就好了。 修改 /etc/network/interfaces

1

2

3

4

5

6

auto eth0

iface eth0 inet static

address 192.168.122.5

netmask 255.255.255.0

gateway 192.168.122.4

dns-nameservers 119.29.29.29

这里很重要的一个设置就是网关,设置成路由主机的 IP 地址。 设置完了同样重启一下网卡使其生效。 还可以选择性设置下 DNS 服务器。 至此,所有配置都完成了,测试一下吧。

测试

我们在客户机里打开浏览器,输入随意一个网页测试一下。 嗯,客户机可以正常上网啦,一切都是那么轻松加愉快! 如有问题,欢迎留言交流~

NAT 网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:保姆级教程 - atlas500部署yolov3-tiny检测实时视频流 [1] - 内网环境下docker部署atlas500
下一篇:GBT22239-2019信息安全技术网络安全等级保护基本要求
相关文章