症状排查闭环 规范排查流程
为什么浏览器能访问,终端却一直超时:命令行与全局代理隔离排障
典型用户症状:浏览器刷 Google、GitHub 秒开,但在 macOS Terminal 或 Windows CMD/PowerShell 中执行 git clone、npm install 或 curl 时一直卡死并报错 Failed to connect / Connection timed out。
🔍 可能引发该症状的底层技术原因
- 终端命令(git, curl, brew, npm 等)默认不读取操作系统的图形系统代理设置
- 客户端开启了系统代理(System Proxy),但没有开启虚拟网卡 TUN 模式
- 环境变量 http_proxy / https_proxy 端口配置错误或未生效
按步骤诊断与处理流程
1 第 1 步:确认代理软件本地监听端口
查看代理客户端界面上的 Socks5 / HTTP 端口(Clash 默认为 7890 或 7897,v2rayN 默认为 10809)。
验证标准:记下准确的端口号。
2 第 2 步:临时为当前终端会话注入代理环境变量
在终端中粘贴执行: export http_proxy=http://127.0.0.1:7897 https_proxy=http://127.0.0.1:7897 (Windows PowerShell: $env:http_proxy="http://127.0.0.1:7897"; $env:https_proxy="http://127.0.0.1:7897")
验证标准:在终端执行 curl -I https://api.github.com/zen,若返回 HTTP 200 即证明生效。
3 第 3 步:或者一劳永逸开启 TUN 虚拟网卡模式
在 Clash Verge Rev 中安装 Service Mode 并打开「TUN 模式」,接管全系统所有进程的 TCP/UDP 流量。
验证标准:开启 TUN 模式后无需配置任何终端环境变量,所有命令行工具自动透明走代理。
⚠️ 排查完成后的恢复建议
若关闭代理软件后终端报错拒绝连接 (Connection Refused),执行 unset http_proxy https_proxy 清除终端环境变量即可恢复原状。
工程师终端一键排查命令速查
若图形界面排查无果,可直接打开终端(macOS Terminal / Windows PowerShell)执行以下标准探测命令定位故障层级:
# 1. 验证本地局域网与网关连通性 (若时延 > 5ms 或丢包则为本地 Wi-Fi 故障) ping -c 4 192.168.1.1
# 2. 验证系统代理端口是否处于正常监听状态 (7890 端口排查) curl -Iv --proxy http://127.0.0.1:7890 https://1.1.1.1/cdn-cgi/trace
# 3. 验证远端 DNS 是否发生污染 (对比国外权威 DNS 返回 IP) nslookup www.google.com 8.8.8.8