Skip to content
Xeron
Go back

Clash Fake IP 导致 TLS 握手失败

编辑此页

paru 装 AUR 包时报 TLS connect error: error:0A000126:SSL routines::unexpected eof while reading,开了 TUN 全局代理也没用。查一圈发现是 Clash 的 Fake IP 惹的祸

怎么定位的

先确认代理本身没问题:

curl ipinfo.io
# 美国 IP,代理正常

再看 DNS,问题就露出来了:

nslookup dl.google.com
# Address: 198.18.0.15  ← Fake IP

198.18.0.0/16 是 Clash Fake IP 的段。curl 加 -v 看握手卡在哪:

curl -v https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-canary/google-chrome-canary_146.0.7637.0-1_amd64.deb -o /tmp/test.deb
# * Trying 198.18.0.15:443...
# * TLSv1.3 (OUT), TLS handshake, Client hello (1):
# * TLS connect error: error:0A000126:SSL routines::unexpected eof while reading

连到 Fake IP 后,Mihomo(Clash Meta)本该透明代理到真实服务器,但它在 Fake IP 模式下处理某些域名的 TLS 握手有兼容问题(大概率跟 SNI 有关),Google CDN 一看握手不对就主动断了

解法

最省事的是让 dl.google.com 别走 Fake IP,在 Clash 配置(~/.config/clash/config.yaml~/.config/mihomo/config.yaml)里加 fake-ip-filter:

dns:
  fake-ip-filter:
    - 'dl.google.com'
    - '*.dl.google.com'

重启 Clash,它就用真实 IP 解析,握手正常

实在不想动配置,用浏览器把 .deb 下下来手动装也行,浏览器的 TLS 栈跟 curl 不一样,不吃这个 bug:

cd ~/Downloads
ar x google-chrome-canary_*.deb
tar xf data.tar.xz
sudo cp -r opt/google/chrome-canary /opt/
sudo cp -r usr/* /usr/

编辑此页
Share this post on:

Previous Post
We Bought a Coin and Never Worked Again
Next Post
解决 npm 全局安装权限问题