特定电脑上的使用 clash 代理的诡异问题

查看 15|回复 1
作者:chen0520   
软件是 clash-verge(clash for win 也试过,问题同样),访问某个国内域名时:
curl -v https://chatgpt.chenm.xyz
* Uses proxy env variable no_proxy == 'localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16'
* Uses proxy env variable https_proxy == 'http://172.26.0.1:7890'
* Trying 172.26.0.1:7890...
* Connected to 172.26.0.1 (172.26.0.1) port 7890
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to chatgpt.chenm.xyz:443
> CONNECT chatgpt.chenm.xyz:443 HTTP/1.1
> Host: chatgpt.chenm.xyz:443
> User-Agent: curl/8.9.0
> Proxy-Connection: Keep-Alive
* Recv failure: Connection reset by peer
* closing connection #0        
clash 对应这个网卡的请求没有任何日志,反而有一个本地(127.0.0.1)日志跟随出现
[TCP] connected lAddr=127.0.0.1:55258 rAddr=stnd-avpg.crsi.symantec.com:443 mode=rule rule=Match() proxy=xxxxxx
改成 global ,direct 的情况下,也是对应这个网卡没有任何请求日志,确有个本地日志跟随
[TCP] connected lAddr=127.0.0.1:55102 rAddr=stnd-avpg.crsi.symantec.com:443 mode=global
如果请求次数多了,偶尔会有个不一样的报错
curl -v https://chatgpt.chenm.xyz
* Uses proxy env variable no_proxy == 'localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16'
* Uses proxy env variable https_proxy == 'http://172.26.0.1:7890'
*   Trying 172.26.0.1:7890...
* Connected to 172.26.0.1 (172.26.0.1) port 7890
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to chatgpt.chenm.xyz:443
> CONNECT chatgpt.chenm.xyz:443 HTTP/1.1
> Host: chatgpt.chenm.xyz:443
> User-Agent: curl/8.9.0
> Proxy-Connection: Keep-Alive
>
此时 clah 日志打印正常
[TCP] connected lAddr=172.26.9.33:51702 rAddr=chatgpt.chenm.xyz:443 mode=rule rule=Domain(chatgpt.chenm.xyz) proxy=DIRECT
只是这台电脑特有的问题,非常之困惑,如何解决呢?
defaw   
出现这种情况的时候走 http 代理了没有,没走就是 dns 污染。
不走 http 代理,走了 tun 且没开 sni 识别的情况下,clash 会查不到你连接的 ip(也就是 dns 污染返回的错误 ip)对应的域名,因为你的 dns 请求没有经过 clash 。
至于为什么 dns 没有经过 clash ,一种可能的原因:
部分路由器的 ipv6 的 dns 下发策略有问题,就算你在 win11 上给 ipv6 设置静态地址,你还是会收到路由器下发的 dns 地址,同时 win 的 dns 优先走 ipv6 ,导致 windows 一直在用路由器下发的 dns 服务器,路由器下发的 dns 实际上就是家宽 isp 下发的,基本都有污染。要验证这种情况,打开终端执行下 nslookup google.com ,会显示你用了哪个 dns 服务器。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部