场景:
1、clash使用fake-ip模式,端口为7892
2、本机配置了dns为127.0.0.1
使用:
1、在本机增加iptables规则,在OUTPUT链上增加重定向到7892端口:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 7892
问题:
1、发现curl任何一个网址都出现无限循环的问题,比如curl www.baidu.com,出现:

clash出现:

请问这种情况是iptables没有配置对吗?
尝试使用
experimental:
interface-name: en0 # your interface-name
来指定你的出口
@Dreamacro 已经试过了,还是不行,在本机配置了基于fake-ip的iptables规则:
iptables -F -t nat
iptables -X -t nat
iptables -t nat -N clash
iptables -t nat -N clash_dns
iptables -t nat -A PREROUTING -p tcp --dport 53 -d 198.19.0.0/24 -j clash_dns
iptables -t nat -A PREROUTING -p udp --dport 53 -d 198.19.0.0/24 -j clash_dns
iptables -t nat -A PREROUTING -p tcp -j clash
iptables -t nat -A clash_dns -p udp --dport 53 -d 198.19.0.0/24 -j DNAT --to-destination 192.168.43.185:53
iptables -t nat -A clash_dns -p tcp --dport 53 -d 198.19.0.0/24 -j DNAT --to-destination 192.168.43.185:53
iptables -t nat -A clash -d 1.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 10.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 100.64.0.0/10 -j ACCEPT
iptables -t nat -A clash -d 127.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 169.254.0.0/16 -j ACCEPT
iptables -t nat -A clash -d 172.16.0.0/12 -j ACCEPT
iptables -t nat -A clash -d 192.168.0.0/16 -j ACCEPT
iptables -t nat -A clash -d 224.0.0.0/4 -j ACCEPT
iptables -t nat -A clash -d 240.0.0.0/4 -j ACCEPT
iptables -t nat -A clash -d 192.168.43.185/32 -j ACCEPT
iptables -t nat -A clash -p tcp --dport 22 -d 192.168.43.185/32 -j ACCEPT
iptables -t nat -A clash -p tcp -j REDIRECT --to-ports 7892
上面的规则只适合做为网关时使用,然后我想在clash的本机可以使用,所以又加了这条:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 7892
但加上之后,就出现上面的的问题了。
请问可能是回环的问题吗?
上面的规则只适合做为网关时使用,然后我想在clash的本机可以使用,所以又加了这条:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 7892但加上之后,就出现上面的的问题了。
请问可能是回环的问题吗?
iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner clash -j REDIRECT --to-port 7892
/etc/systemd/system/clash.service
...
[Service]
Type=simple
StandardError=journal
User=clash
Group=clash
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/local/etc/clash/clash-linux -d /usr/local/etc/clash/
...
clash二进制用户组设为clash.
@Windendless 也是试过了,也是出现同样的错误:

我已经设置了clash运行的账户为clash,并增加了上面的规则。
#!/bin/zsh
iptables -t nat -N CLASH_LOCAL
iptables -t nat -N CLASH_EXTERNAL
iptables -t nat -A CLASH_LOCAL -m owner --uid-owner 1001 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 0.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 224.0.0.0/4 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 172.16.0.0/12 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 169.254.0.0/16 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 240.0.0.0/4 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 192.168.0.0/16 -j RETURN
iptables -t nat -A CLASH_LOCAL -d 10.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_LOCAL -p tcp -j REDIRECT --to-ports 7892
iptables -t nat -A CLASH_EXTERNAL -d 0.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 224.0.0.0/4 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 172.16.0.0/12 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 169.254.0.0/16 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 240.0.0.0/4 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 192.168.0.0/16 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -d 10.0.0.0/8 -j RETURN
iptables -t nat -A CLASH_EXTERNAL -p tcp -j REDIRECT --to-ports 7892
iptables -t nat -I OUTPUT -p tcp -j CLASH_LOCAL
iptables -t nat -I PREROUTING -p tcp -j CLASH_EXTERNAL
iptables -t nat -N CLASH_DNS_LOCAL
iptables -t nat -N CLASH_DNS_EXTERNAL
iptables -t nat -A CLASH_DNS_LOCAL -p udp ! --dport 53 -j RETURN
iptables -t nat -A CLASH_DNS_LOCAL -m owner --uid-owner 1001 -j RETURN
iptables -t nat -A CLASH_DNS_LOCAL -p udp -j REDIRECT --to-ports 1053
iptables -t nat -A CLASH_DNS_EXTERNAL -p udp ! --dport 53 -j RETURN
iptables -t nat -A CLASH_DNS_EXTERNAL -p udp -j REDIRECT --to-ports 1053
iptables -t nat -I OUTPUT -p udp -j CLASH_DNS_LOCAL
iptables -t nat -I PREROUTING -p udp -j CLASH_DNS_EXTERNAL
@Windendless 也是试过了,也是出现同样的错误:
我已经设置了clash运行的账户为clash,并增加了上面的规则。
你测试规则太复杂,iptables之外的文件具体内容也不清楚,我路由正常跑的就下面这些内容
iptables:
iptables -t nat -A PREROUTING -p tcp ! --dport 22 -j REDIRECT --to-ports 7892
iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner clash -j REDIRECT --to-port 7892
clash.service:
...
[Service]
Type=simple
StandardError=journal
User=clash
Group=clash
CapabilityBoundingSet=CAP_NET_BIND_SERVICE #重要
AmbientCapabilities=CAP_NET_BIND_SERVICE #重要
ExecStart=/usr/local/etc/clash/clash-linux -d /usr/local/etc/clash/
...
-rwxr-xr-x 1 clash clash 9080832 Oct 13 00:33 clash-linux
-rw-r--r-- 1 clash clash 20712 Mar 6 00:26 config.yaml
-rw-r----- 1 clash clash 3547112 Jan 31 2019 Country.mmdb
-rwxr-xr-x 1 clash clash 4489840 Jun 16 2019 trojan
@whitegerry @L0snight 非常感谢两位的方案,两位的方案都能成功了
1、在本机访问没问题,能做透明代理
2、在PC2中可以做网关
但现在另外一个问题请教:
1、如果在PC2中不设置网关,而是用iptables转向clash,那么我测试如下iptables的规则,发现也会出现以上规则
2、基于PC2用iptables转向clash,可能导致上面的原因具体会是哪些了?
iptables在PC2的规则:
iptables -t nat -A OUTPUT -p tcp -d 198.18.0.0/16 -j DNAT --to-destination 192.168.43.185:7892
我发现问题所在了,我通过日志输出得出以下现象:
1、如果PC2通过路由表,那么在clash机器上,iptables的PREROUTING的DST,也就是目标地址为:198.18.0.0/16的地址,此时是正常的。
2、如果PC2通过iptables,那么在clash机器上,iptables的PREROUTING的DST,也就是目标地址为:
PC2的IP地址,此时是不正常的。
那么知道了以上问题,我发觉如果单靠iptables好像不好解决在clash的目标地址转换的问题。
mark
目前我的临时解决方案:
1、在PC2放弃iptables的方案。
实现:
1、在PC2设置DNS服务器为clash,并把默认网关设置为clash,但这种方案只能用在同一网段,而不适用于多网段,多vlan的网络。
2、在PC2安装一个clash,PC2的clash代理使用socks5指向PC1 clash提供出来的socks5 7891;PC2运行clash之后,并本机的DNS和网关指向PC2的clash
其实第2中方案是投机取巧,相当于clash 1连接clash 2,通过层层跳转实现。
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
好像时因为你的nat 表没有添加对你服务器IP的 -j ACCEPT
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
参考这个哥们的配置,可以用的,@whitegerry
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
参考这个哥们的配置,可以用的,@whitegerry
他的配置没有设置udp规则样,无法代理udp
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
参考这个哥们的配置,可以用的,@whitegerry
他的配置没有设置udp规则样,无法代理udp
udp动动手不就ok了么。。。
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
参考这个哥们的配置,可以用的,@whitegerry
他的配置没有设置udp规则样,无法代理udp
udp动动手不就ok了么。。。
啊 有什么好的方法吗 请指点一下 我正纠结udp不好弄呢 tproxy一直失败
554 这个问题和这个issues是同一个
兄弟,可否分享一下你的配置文件和现在用的iptabls,我也遇到了类似问题,请教一下
参考这个哥们的配置,可以用的,@whitegerry
hi,你有尝试用docker的方法部署clash,然后本机做代理? 通过不同owner区分,docker则用非root用户运行?
@Windendless 也是试过了,也是出现同样的错误:
我已经设置了clash运行的账户为clash,并增加了上面的规则。你测试规则太复杂,iptables之外的文件具体内容也不清楚,我路由正常跑的就下面这些内容
iptables:
iptables -t nat -A PREROUTING -p tcp ! --dport 22 -j REDIRECT --to-ports 7892 iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner clash -j REDIRECT --to-port 7892clash.service:
... [Service] Type=simple StandardError=journal User=clash Group=clash CapabilityBoundingSet=CAP_NET_BIND_SERVICE #重要 AmbientCapabilities=CAP_NET_BIND_SERVICE #重要 ExecStart=/usr/local/etc/clash/clash-linux -d /usr/local/etc/clash/ ...-rwxr-xr-x 1 clash clash 9080832 Oct 13 00:33 clash-linux -rw-r--r-- 1 clash clash 20712 Mar 6 00:26 config.yaml -rw-r----- 1 clash clash 3547112 Jan 31 2019 Country.mmdb -rwxr-xr-x 1 clash clash 4489840 Jun 16 2019 trojan
按照你的方法设置本机透明代理规则发现在docker build的时候
RUN apt-get install curl -y
出现如下图问题。这个有解决方法?

同样问题。iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 7892 华硕梅林用这句就会导致回环炸网,然后路由也不支持OWNER方式打标记。
有点蛋疼。 代理自己就可以跟koolproxy兼容,去掉这句,就没法用KP
啊。还有什么能用的ipt标记语句
目前我的临时解决方案:
1、在PC2放弃iptables的方案。
实现:
1、在PC2设置DNS服务器为clash,并把默认网关设置为clash,但这种方案只能用在同一网段,而不适用于多网段,多vlan的网络。
2、在PC2安装一个clash,PC2的clash代理使用socks5指向PC1 clash提供出来的socks5 7891;PC2运行clash之后,并本机的DNS和网关指向PC2的clash其实第2中方案是投机取巧,相当于clash 1连接clash 2,通过层层跳转实现。
2.这个具体怎么做呢?想变通下看能不能做本地网易云解锁,把pc1看成网易云,pc2看成clash.,想让clash直接代理网易云的http 5200端口解锁。卡住了
我发现问题所在了,我通过日志输出得出以下现象:
1、如果PC2通过路由表,那么在clash机器上,iptables的PREROUTING的DST,也就是目标地址为:198.18.0.0/16的地址,此时是正常的。
2、如果PC2通过iptables,那么在clash机器上,iptables的PREROUTING的DST,也就是目标地址为:
PC2的IP地址,此时是不正常的。那么知道了以上问题,我发觉如果单靠iptables好像不好解决在clash的目标地址转换的问题。
您好,想请教一下,现在解决多网段代理的问题了吗,我也遇到这个问题了
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days
Most helpful comment