在使用 paru 安装 AUR 包时遇到了 TLS connect error: error:0A000126:SSL routines::unexpected eof while reading 错误,即使开启了 TUN 模式全局代理也无法解决
问题现象
安装 google-chrome-canary 时下载失败:
paru -S google-chrome-canary
# curl: (35) TLS connect error: error:0A000126:SSL routines::unexpected eof while reading
# ERROR: Failure while downloading https://dl.google.com/linux/chrome/deb/...
诊断过程
1. 检查代理状态
curl ipinfo.io
# 显示美国 IP,说明代理正常工作
2. 检查 DNS 解析
nslookup dl.google.com
# Name: dl.google.com
# Address: 198.18.0.15 ← 这是 Fake IP!
3. 测试 TLS 握手
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
问题根源
Clash Meta 的 Fake IP 模式在处理某些域名的 TLS 握手时存在兼容性问题:
- Clash 为
dl.google.com返回假 IP198.18.0.0/16段地址 - curl 连接到假 IP,Clash 应该透明代理到真实服务器
- TLS 握手阶段,Clash 的处理出现异常(可能是 SNI 或证书验证相关)
- Google CDN 检测到异常握手后主动断开连接
解决方案
方案 1:修改 Clash 配置(推荐)
编辑 Clash 配置文件(~/.config/clash/config.yaml 或 ~/.config/mihomo/config.yaml):
dns:
fake-ip-filter:
- 'dl.google.com'
- '*.dl.google.com'
重启 Clash 后,dl.google.com 将使用真实 IP 而不是 Fake IP
方案 2:使用浏览器下载
浏览器的 TLS 实现可能不受影响,可以直接下载:
- 浏览器打开下载链接
- 下载完成后手动安装:
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/
方案 3:临时切换到 Real IP 模式
如果 Clash 支持模式切换,可以临时改为 Real IP 模式下载完成后再切换回来
方案 4:手动指定真实 IP
# 查询真实 IP
dig @1.1.1.1 dl.google.com +short
# 添加到 hosts(假设真实 IP 是 142.250.x.x)
sudo sh -c 'echo "142.250.x.x dl.google.com" >> /etc/hosts'
# 下载完成后删除该行
sudo sed -i '/dl.google.com/d' /etc/hosts