Skip to content

似乎会和mwan3冲突 #97

@sadan9

Description

@sadan9

先说环境:
immortalWrt 21.xx + passwall +mwan3 + fakehttp

一共3条线路,电信A,电信B,联通C。
现象是启动fakehttp -i A -i B之后电信B上监听的端口无法从外网访问。A和C正常。

让GPT协助分析iptables的各种规则以后,得到的结论是:
1)防火墙优先级是fakehttp-->psw--->mwan3
2)C正常是因为根本没有吃fakehttp的规则。
3)B不正常的原因是吃到fakehttp的规则导致没有被mwan3打上标记,导致回程路由不正常。
4)A正常的原因是虽然fakehttp拦截了没吃到mwan3,但因为默认是走A,所以正常。

有问题情况下的防火墙如下:
root@ImmortalWrt:~# iptables -t mangle -L PREROUTING -v -n --line-numbers
Chain PREROUTING (policy ACCEPT 38481 packets, 4544K bytes)
num pkts bytes target prot opt in out source destination
1 59076 6674K FAKEHTTP_S all -- * * 0.0.0.0/0 0.0.0.0/0
2 60437 6812K PSW_DIVERT tcp -- * * 0.0.0.0/0 0.0.0.0/0 socket
3 76499 9269K PSW all -- * * 0.0.0.0/0 0.0.0.0/0
4 79127 9587K mwan3_hook all -- * * 0.0.0.0/0 0.0.0.0/0

根据GPT的建议,增加了一条iptables -t mangle -I PREROUTING 1 -j mwan3_hook外部访问正常了
root@ImmortalWrt:~# iptables -t mangle -L PREROUTING -v -n --line-numbers
Chain PREROUTING (policy ACCEPT 85 packets, 8575 bytes)
num pkts bytes target prot opt in out source destination
1 159 15987 mwan3_hook all -- * * 0.0.0.0/0 0.0.0.0/0
2 67297 7645K FAKEHTTP_S all -- * * 0.0.0.0/0 0.0.0.0/0
3 63233 7137K PSW_DIVERT tcp -- * * 0.0.0.0/0 0.0.0.0/0 socket
4 81665 9900K PSW all -- * * 0.0.0.0/0 0.0.0.0/0
5 84293 10M mwan3_hook all -- * * 0.0.0.0/0 0.0.0.0/0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions