iptables3 端口转发

NAT(Network Address Translation),分为DNAT(Destination)和SNAT(Source)。

DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映射,使用PREROUTING,用于外网访问内网里的主机服务器,透明转发或端口映射。

SNAT(Source Network Address Translation,源地址转换)通常被叫做源映射,使用POSTROUTING,用于内网里的主机,访问外网,即分享公网IP。

image.png

二、开启操作系统的IP转发
如果操作系统的IP转发默认是关闭的,首先开启IP转发功能。

echo 1 > /proc/sys/net/ipv4/ip_forward

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p

三、应用实例

基于FORWAR默认策略为ACCEPT

iptables -t filter -P FORWARD ACCEPT

将跳板机 192.168.111.102:8888 转发到 192.168.111.103:4444

iptables -t nat -A PREROUTING -p tcp -d 192.168.111.102 --dport 8888 -j DNAT --to-destination 192.168.111.103:4444

iptables -t nat -A POSTROUTING -p tcp -d 192.168.111.103 --dport 4444 -j SNAT --to-source 192.168.111.102

将跳板机 192.168.111.102:8888 转发到 192.168.111.103:4444

iptables -t nat -A PREROUTING -p tcp -d 192.168.111.102 --dport 8888 -j DNAT --to-destination 192.168.111.103:4444

iptables -t nat -A POSTROUTING -p tcp -s 192.168.111.103 --sport 4444 -j SNAT --to-source 192.168.111.102

将对192.168.1.102的22访问,转发到192.168.1.103的22

iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.0.3

iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.3 -j SNAT --to-source 192.168.0.2

将本机大网xx.xx.xx.xx:6033 的访问,转发到本机小网192.168.1.120:6033

iptables -t nat -A PREROUTING --dport 6033 -j DNAT --to-destination 192.168.1.120

iptables -t nat -A POSTROUTING --dport 6033 -j MASQUERADE

对跳板机0.0.0.0:6033 的访问转发到 192.168.1.120:3306

iptables -t nat -A PREROUTING --dport 6033 -j DNAT --to-destination 192.168.1.120:3306

iptables -t nat -A POSTROUTING -j MASQUERADE

本机转发

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80

如果FORWAR默认策略为DROP,需要针对性地设置FORWAR策略

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

查看filter nat 策略

iptables -t filter -nvL --line

iptables -t nat -nvL --line

关于策略的删除,将-A 改为 -D,或者指定策略行号

iptables -t nat -D PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80

iptables -t nat -D 相应策略的行号

实例

添加filter 表的forward链

iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

添加nat 表的prerouting链

iptables -t nat -I PREROUTING -p tcp --dport  81  -j DNAT --to-destination 192.168.122.109:81
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容