请教一个软路由上的 iptables 问题

2022-01-04 12:32:13 +08:00
 n

请教各位老师一个问题,我在自己的软路由上加了这么个 iptables 规则,主要是为了把 3 个端口的 tcp 流量给 clash 。然后我发现了一个问题,就是这样做会使同花顺客户端( mac 版本)无法登陆(另外空调也无法联网了),如果去掉最后两个 PREROUTING 规则,就没问题,我实在是不知道自己哪里做错了。

另外,最后的 iptables -t nat -A PREROUTING -j ACCEPT 是我上周加的,当时加完问题就全解决了,昨晚发现又不行了。奇怪。

iptables -t nat -N CLASH
iptables -t nat -A CLASH -d 10.0.0.0/8 -j RETURN
iptables -t nat -A CLASH -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH -d 169.254.0.0/16 -j RETURN
iptables -t nat -A CLASH -d 172.16.0.0/12 -j RETURN
iptables -t nat -A CLASH -d 192.168.0.0/16 -j RETURN
iptables -t nat -A CLASH -d 224.0.0.0/4 -j RETURN
iptables -t nat -A CLASH -d 240.0.0.0/4 -j RETURN

# Commonly used ports.
iptables -t nat -A CLASH -p tcp -j REDIRECT --to-port 9999

# For fake-ip.
iptables -t nat -A OUTPUT -p tcp -d 198.18.0.0/16 -j CLASH

# For DNS request.
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 5353

# For all tcp connection.
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 22,80,443 -s 10.10.1.1/16 -j CLASH
iptables -t nat -A PREROUTING -j ACCEPT

如果有老师知道问题出在哪,还望不吝赐教!🙏

1630 次点击
所在节点    问与答
3 条回复
blackeeper
2022-01-04 15:02:39 +08:00
倒数第二这个配置有问题,如果你是想整个网段那么写 10.10.0.0/16 ,如果只是单个主机:10.10.1.1/32 。
然后就是把这个 tcp 流量给 clash ,clash 的流量是不是又走到软路由的 clash 链了?
neroxps
2022-01-04 15:42:47 +08:00
如果 clash 是用 fake-ip 模式,那就必须把全部流量导向它,否则拿到的 IP 全是 fake-ip 当然不可以联网。
但是听你说去掉 -j CLASH 就好了,那么应该不是 fake-ip 模式。

那就得排查 clash 日志为何 tcp 流量转发给它之后,它没正确的发出去。

假设源地址是 10.10.1.3 电脑 目的地址是 123.222.1.1 (假设是同花顺) 端口 443 按照上面规则,会跑到 CLASH

最终转发给 9999

clash 收到后会比对 ip 库,发现是 CN 区域,就会把数据包直接发出去。综上所述删掉 PREROUTING 的规则就正常,那么问题肯定是在 clash 上。op 应该没有做 snat
n
2022-01-04 22:39:08 +08:00
回复楼上两位老师一声,首先说,我确实是不清楚发生了什么:

一楼 @blackeeper 指出的 10.10.0.0/16 肯定是没错的,我给改了。然后同花顺还是登陆不了,于是我把所有的规则都给删了,同花顺可以登录了。然后我一条条的往回加,加到倒数第二条(刚改的那条)时,同花顺依然能登陆,此时我就真的不明白到底发生了什么了。另外,我还试了把 10.10.0.0/16 改回错误的 10.10.1.1/16 ,同花顺依然能登陆。太奇怪了。

所以我猜测,是不是我删除 iptables 的操作导致某个和 ip 有关的记录被重置了?比如 clash 的 fake-ip 的 store-fake-ip 或者 dns cache 之类的(我乱猜的)?

总之问题看起来解决了,但又应该没彻底解决,接下来几日有可能会再次出现,到时候我按着后面的猜测测试下。

总之,非常感谢两位的指点。万分感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826071

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX