需求场景
局域网中,只有机器A能访问外网,其他机器无法直接访问外网,但能与机器A相互通信,那么我们可以通过机器A中实现路由功能,从而使其他机器能访问外网
环境配置
机器A有两块网卡,分别为:
eth0,与外网连接,具体如下:inet 217.13.80.37 netmask 255.255.255.252 broadcast 217.13.80.38
eth1,与内网连接,具体如下:inet 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255
机器B有一块网卡eth0,与内网连接,具体如下:inet 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
**注意:**机器A的eth1与机器B的eth0在同一网段
具体配置
1:在机器A中配置对应网卡具体信息,如果使用ubuntu18.04服务版本,可以通过netplan进行配置,具体自行查找
2:配置好相关ip后,需要在机器A中设置路由转发,如下:
iptables -F # 清理iptable
iptables -t nat -A POSTROUTING -s 172.16.6.0/24 -j MASQUERADE
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf # 也可以编辑状态下复制进去
sysctl -p
3:此时在机器B中执行一下命令进行验证
ping www.baidu.com # 如果没有上面1,2两个步骤,域名无法ping通
ping 202.25.25.25