通过NAT代理实现内网访问外网设置方法(利用Iptables实现)

1,背景及原理

  若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换,从而使所有机器都能访问外网

2,环境模拟

  在虚拟机中创建两台Linux系统(可以在创建一台后克隆另一台,这样做可以加快效率),分别命名为Linux1和Linux2,其中Linux1具有两块网卡eth0(NAT模式)和eth1(仅主机模式)

1

 Linux2具有一块网卡eth0(仅主机模式),让Linux1做路由器(服务器),Linux2做客户机

1

 ip地址分配为:
 Linux1:eth0 192.168.214.210(此ip跟VMware的NAT模式同网段,否则作为服务器端的Linux将无法访问外网)

3

 eth1 172.16.6.254(自定义)
 Linux2:eth0 172.16.6.100(自定义)
环境模拟步骤:
 2.1 对于Linux1服务器端
 2.1.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改网卡配置文件,同时将ip改为静态ip:192.168.214.210,网关192.168.214.2

4

 2.1.2 进入到/etc/sysconfig/network-scripts/目录,创建网卡eth1的配置文件,可以通过复制网卡eth0的配置文件cp ifcfg-eth0 ifcfg-eth1再进行配置, 只需配置静态ip为172.16.6.254(即Linux2的网关)

1

 2.1.3 执行命令>/etc/udev/rules.d/70-persistent-net.rules清空网卡信息相关文件
 2.1.4 重启系统并查看ip

1

 2.2 对于Linux2客户端
 2.2.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改网卡配置文件(因为是通过原来的克隆过来的,所以需要删除网卡的物理地址和UUID),同时将ip地址改为静态ip:172.16.6.100

1

 2.2.2 执行命令>/etc/udev/rules.d/70-persistent-net.rules清空网卡信息相关文件
 2.2.3 重启系统并查看ip

1

 2.3 在Linux1上pingwww.baidu.com –c4

1

 检验Linux2与Linux1的通信,在Linux2上ping 172.16.6.254 –c4,同时ping www.baidu.com,发现能ping通网关(即Linux1),ping不通外网

1

 3、在Linux1上操作
 3.1 配置iptable转发规则执行如下命令
 iptables -F #清除所有规则来暂时停止防火墙
 iptables -t nat -A POSTROUTING -s 172.16.6.0/24 -j MASQUERADE #进行ip伪装

1

 3.2 调整内核参数,开启内核ip路由转发功能
 echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
 sysctl -p 载入sysctl配置文件

1

 在Linux2上重新ping www.baidu.com –c4

1

 此时Linux2能通过Linux1连上外网,大功告成!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享