iptables NAT表之SNAT、DNAT、REDIRECT介绍
发布日期:2021-05-08 05:15:17 浏览次数:10 分类:原创文章

本文共 1313 字,大约阅读时间需要 4 分钟。

iptables NAT表之SNAT、DNAT、REDIRECT介绍

NAT: network address translation
PREROUTING,INPUT,OUTPUT,POSTROUTING
请求报文:修改源/目标IP,由定义如何修改
响应报文:修改源/目标IP,根据跟踪机制自动实现

SNAT

SNAT:source NAT POSTROUTING, INPUT
让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装
请求报文:修改源IP

SNAT工作过程:
本机IP 192.168.1.10
网关上的外网IP是111.111.111.111
本机数据包发送到网关,此时源IP是192.168.1.10,网关记录后在POSTROUTING链上把源IP改为111.111.111.111再发送

语法:
iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j SNAT --to-source ExtIP

示例:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 111.111.111.111
如果是动态IP则需要MASQUERADE

MASQUERADE:动态IP,如拨号网络
–to-ports port[-port]
–random

示例:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

DNAT

DNAT:destination NAT PREROUTING , OUTPUT
把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP
请求报文:修改目标IP

DNAT工作过程:
跟SNAT相反,DNAT是网关收到指定端口的数据包后发送到指定内网IP上

语法:
–to-destination [ipaddr[-ipaddr]][:port[-port]]
iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --to-destination InterSeverIP[:PORT]

示例:
iptables -t nat -A PREROUTING -d 111.111.111.111 -p tcp --dport 22 -j DNAT --to-destination 192.168.1.10

REDIRECT

REDIRECT也可以叫转发,属于NAT表
可用于:PREROUTING OUTPUT 自定义链
通过改变目标IP和端口,将接受的包转发至不同端口
–to-ports port[-port]

示例:
把本机8888收到的数据包转到80端口
iptables -t nat -A PREROUTING -d 192.168.1.10 -p tcp --dport 8888 -j REDIRECT --to-ports 80

上一篇:KeepAlived介绍、配置示例、KeepAlived配置IPVS、调用脚本进行监控
下一篇:firewalld介绍、rich规则、伪装和端口转发

发表评论

最新留言

很好
[***.229.124.182]2025年04月05日 21时45分58秒