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/