在 Debian11 上部署了 Clash 并通过 iptables 实现了 TProxy

date
Aug 22, 2021
slug
deploy-clash-on-debian-with-iptables
status
Published
tags
debian
clash
TProxy
iptables
summary
type
Post
Finish Date
Aug 18, 2021
很长的一段时间里一直使用openwrt 作旁路由使用,但是里面的clash 并不好用,最终还是用的 ssrp。
而且现在各家编译的 openwrt 有个问题,就是新版本发布太频繁了,但是你又不能无缝升级,你所有的配置得重新做,这就很不友好了。
大多数情况下,我只要确保我部署的服务稳定好用就行了,只要稳定,我可以一百年都不升级。
在 Linux 系统下,基本上openwrt 里面的需求都可以更加灵活的实现,主动权也掌握在自己手里,而不用等着上游解决问题。
 

开启系统转发

sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
sudo echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf 
 

配置 iptables 转发

# ROUTE RULES

ip rule add fwmark 1 table 100

ip route add local 0.0.0.0/0 dev lo table 100

# CREATE TABLE

iptables -t mangle -N clash

# RETURN LOCAL AND LANS

iptables -t mangle -A clash -d 0.0.0.0/8 -j RETURN

iptables -t mangle -A clash -d 10.0.0.0/8 -j RETURN

iptables -t mangle -A clash -d 127.0.0.0/8 -j RETURN

iptables -t mangle -A clash -d 169.254.0.0/16 -j RETURN

iptables -t mangle -A clash -d 172.16.0.0/12 -j RETURN

iptables -t mangle -A clash -d 192.168.50.0/16 -j RETURN

iptables -t mangle -A clash -d 192.168.9.0/16 -j RETURN

iptables -t mangle -A clash -d 224.0.0.0/4 -j RETURN

iptables -t mangle -A clash -d 240.0.0.0/4 -j RETURN

# FORWARD ALL

iptables -t mangle -A clash -p udp -j TPROXY --on-port 7893 --tproxy-mark 1

iptables -t mangle -A clash -p tcp -j TPROXY --on-port 7893 --tproxy-mark 1

# REDIRECT

iptables -t mangle -A PREROUTING -j clash
 

参考资料


© wtser 2021