openwrt 端口回流的关键

操作:设置此iptable

iptables -I zone_lan_forward -t filter -m conntrack --ctstate DNAT -j ACCEPT

 

原因说来话长:

首先需要这个基础:

http://my.oschina.net/HankCN/blog/117796

 

上面的基础会之后,这里说一下原因:

 

其实端口回流是soho 路由器的说法,实质起作用的还是SNAT,DNAT:

我们在openwrt上设置完端口映射后,可以用iptables看一下NAT表的情况:

 

root@DreamBox:~# iptables -t nat -L

……
Chain nat_reflection_in (1 references)
target prot opt source destination
DNAT tcp -- 192.168.4.0/24 192.168.1.106 tcp dpt:www to:192.168.4.234:80  

——内网4.0/24网段访问wan口ip192.168.1.106的80端口,目的ip会DNAT为内网ip 192.168.4.234

Chain nat_reflection_out (1 references)
target prot opt source destination
SNAT tcp -- 192.168.4.0/24 cj-PC.lan tcp dpt:www to:192.168.4.1

 

——4.0/24网段访问内网的 192.168.4.234(即cj-PC.lan)的80端口时,源IP转换为路由器的内网网关地址192.168.4.1

 

我们发现规则都是好的,为什么就不能访问呢?

 

那么,原因肯定是被filter表拦截了,而且可以确定是在forward环节

 

在forward环节,默认的filter policy是DROP,

 

所以我们必须为DNAT放行,就是文首的那个命令:

iptables -I zone_lan_forward -t filter -m conntrack --ctstate DNAT -j ACCEPT

 

为什么SNAT就不用管呢?因为SNAT是在forward环节后的postrouting节点做的事情,所以forward不用管SNAT。

转载于:https://www.cnblogs.com/souroot/p/4771162.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值