如何用iptables实现NAT

如何用iptables实现NAT,第1张

NAT有三种SNAT,DNAT和PNAT。
先简单介绍下。SNAT(地址转换):目标地址不免,改写源地址,实现内网多用户使用同一个公网IP上网的情况。DNAT(目标地址转换):源地址不变重新修改目标地址。PNAT(端口映射):在DNAT基础上,实现内网IP端口对外网监听。
SNAT的实现方式:
先把Linux系统ipv4数据包的转发功能打开,系统就有了路由功能。
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
添加iptables的nat表项
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192168110/24 -j SNAT --to-source 20210xxxx
表示在postrouting链上,将内网源地址为192168110/24网段的数据包的源地址都转换为公网IP 20210xxxx。这样SNAT配置完毕,可以测试上网了。做NAT服务器的内网IP 19216811x 就是内网主机需要配置的网关地址。当然纯内网环境下,转换的成的IP也可以是另一个内网网段的IP。
SNAT还有一个常用选项:MASQUERADE。此选项可以用在动态获取IP地址的主机,如家用宽带拨号上网的主机。
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192168110/24 -o eth1 -j MASQUEREADE
在这里-o后面的网卡名是指定出去的接口,MASQUEREADE会调用该接口的地址作为转换后的源地址。
DNAT转换不多介绍了,用到的时候不多,格式如下:
[root@localhost ~]# iptables -t nat -A PREROUTING -d 20210xxXX -p tcp –-dport 8080 -j DNAT –-to-destination 19216811128:80
感兴趣的可以在网上搜一下nat原理。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10763138.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存