Linux下轻松搭建NAT服务器

时间:2024-03-27 20:01:06

转自:http://blog.51cto.com/tong707/2050149

什么是NAT?


NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址,而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址转换成全局地址,从而使得在外部公共网(Internet)上使用一个和数个合法IP地址正常传输数据。

其中,这里的外网和内网是相对来讲的,下面假设能够访问互联网的网络为外网。




一、基础环境


1)实验环境

  • 一台Linux服务器(配置有两张网卡)

  • 一台PC机(一张网卡,IP为10.0.0.10)


2)网络环境

  • Linux服务器当做NAT服务器,负责将内网的流量转至外网,因此需要两张网卡,配置两个网络,以下称为外网内网

  • 内网中的网络可以设置为静态地址也可以配置DHCP服务器。

  • Linux中 ens160 为外网网卡,IP为 172.18.72.183

  • Linux中 ens192 为内网网卡,IP为 10.0.0.1


Linux下轻松搭建NAT服务器




二、防火墙配置


1)让发送至内网网卡的数据全部通过

1
iptables -A FORWARD -i ens192 -j ACCEPT

^注: `ens192` 为内网网卡

Linux下轻松搭建NAT服务器


2)修改数据报头信息

1
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens160 -j MASQUERADE

^注: `10.0.0.0/24` 为内网网段, `ens160` 为外网网卡

或者

1
iptables -t nat -A POSTROUTING -j SNAT --to-source 172.18.72.183

^注: `172.18.72.183` 为外网网卡地址





三、开启Linux的路由功能


1
2
echo 1 > /proc/sys/net/ipv4/ip_forward     # 打开路由功能
cat /proc/sys/net/ipv4/ip_forward          # 查看是否启用路由功能,结果为1,代表已启用,0代表未启用


Linux下轻松搭建NAT服务器




四、检查连通性

在 Windows 上设置静态IP(10.0.0.10/24),网关设为 10.0.0.1 。

1
ping www.baidu.com

检测通过。


Linux下轻松搭建NAT服务器