Skip to content
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

fix: call shutdown() before restart #709

Merged
merged 1 commit into from
Aug 30, 2023
Merged

Conversation

AlphaGHX
Copy link

当我使用 Api 来重启或更新 Meta 内核时,会出现 iptables 规则重复的情况。查看代码后发现是调用 runRestart 的时候没有清除 iptables。

我直接用 executor.Shutdown() 替换掉原来的 listener.Cleanup(false),问题得到解决。

以下内容是因为在重启时没有清除规则导致的规则重复,这导致彻底退出 Meta 后也会残留部分规则,最终影响路由。

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:clash_dns_output - [0:0]
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING ! -s 172.17.0.0/16 ! -d 127.0.0.0/8 -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
-A OUTPUT -p udp -m udp --dport 53 -j clash_dns_output
-A OUTPUT -p tcp -m tcp --dport 53 -j clash_dns_output
-A OUTPUT -p udp -m udp --dport 53 -j clash_dns_output
-A OUTPUT -p tcp -m tcp --dport 53 -j clash_dns_output
-A OUTPUT -p udp -m udp --dport 53 -j clash_dns_output
-A OUTPUT -p tcp -m tcp --dport 53 -j clash_dns_output
-A POSTROUTING -o eth0 -m addrtype ! --src-type LOCAL -j MASQUERADE
-A POSTROUTING -o eth0 -m addrtype ! --src-type LOCAL -j MASQUERADE
-A POSTROUTING -o eth0 -m addrtype ! --src-type LOCAL -j MASQUERADE
-A clash_dns_output -m mark --mark 0x86e -j RETURN
-A clash_dns_output -s 172.17.0.0/16 -j RETURN
-A clash_dns_output -p udp -j REDIRECT --to-ports 53
-A clash_dns_output -p tcp -j REDIRECT --to-ports 53

@Larvan2 Larvan2 merged commit 9536372 into MetaCubeX:Alpha Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants