-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
外网端口转发重新拨号后导致防火墙规则乱序 #35
Comments
写了个 hotplug 在 ifup 的时候重启服务,试试看行不行 |
修改了16行的引号问题后,测试了一下已经没问题了。 未使用脚本前: 使用脚本后: 日志:
一切正常。 |
刚刚发现如果修改或新增端口转发规则也会触发类似上面的系统重设防火墙操作 |
会手动修改 iptables 的人,一般都会查看这些规则,所以可以忽略这种 |
发现了一种新方法,你可以试试 |
刚测试了一下,一开始没触发。发现定义了两个
查了一下其他项目,加了个延时解决 |
默认的延迟 1000,关键在于这个时间其实是不确定的。 |
修改的文件 /etc/uci-defaults/40_luci-v2ray 在我的路由器里找不到啊, 其他2个文件倒是验证过有的 |
问题描述:
先看正常时的防火墙规则,
V2RAY
链是插在nat
表的PREROUTING
链的最后:zone_wan_prerouting
链包含了系统设定的一些端口转发规则。因此当存在匹配的端口转发时,zone_wan_prerouting
链能比V2RAY
链优先DNAT
掉,然后就是正常的直接通信。但是当本机外网IP租期到重新拨号时,系统重新设定了防火墙规则,导致
V2RAY
链移动到PREROUTING
链的顶端:但
V2RAY
链没有设定本机外网IP网段直接返回规则:所以任何访问本机外网IP的tcp连接都被
REDIRECT
到本机1081端口的V2RAY
。例如本机外网IP的3000端口转发到某内网IP的2000端口。当V2RAY
路由到直接访问时,尝试访问本机外网IP的源端口3000时,由于请求已经不会过nat表了,所以不会找到对应的目标端口2000转发,直接访问了路由器的3000端口。而如果路由器该端口没开服务,那么V2RAY
就返回客户端结束tcp连接了。解决方法:
目前想到3个解决方法:
V2RAY
链最后一条REDIRECT
规则前添加一条本机外网IP网段直接返回的规则。V2RAY
的防火墙规则。PREROUTING
链时从前面开始插The text was updated successfully, but these errors were encountered: