机场客户端已连接,curl和Git仍连不上?终端代理排查
机场客户端已连接,终端仍连不上,先检查命令行工具是否使用了正确代理。浏览器能访问,只说明浏览器这条路通了;curl、Git可能还在门口等导航。使用真正接管相关流量的VPN时,也要检查分流和排除设置。
为什么系统代理开了,终端没跟上?
curl官方说明指出,它不支持自动发现代理。因此,开启客户端的“系统代理”后,不能直接推断curl已经采用该设置。你需要给工具指定代理,或确认连接确实被隧道接管。
先看客户端的本地监听地址、端口和协议。HTTP端口与SOCKS端口可能不同,节点的远程端口也不是本地代理端口。地址填错,就像把快递柜编号写进收件人的手机号。
第一步:用一次请求检查本地入口
在Windows终端中,可参考下面的HTTP代理示例,先把“端口”替换为客户端实际显示的数字:
curl.exe -q --proxy "http://127.0.0.1:端口" --max-time 15 "https://example.com"
这是请求示例,本站没有代你执行。目标也可换成自己要访问的HTTPS网站。如果入口只支持SOCKS,就按协议更换代理前缀,不能直接照抄HTTP写法。来源:curl代理参数
同时查看客户端连接记录:请求有没有进入、匹配了什么规则、去了哪个出口。收到网页内容也不等于所有应用都已走代理。
第二步:检查环境变量与绕过名单
curl环境变量文档列出http_proxy、https_proxy及ALL_PROXY;对应协议的变量优先于通用变量。NO_PROXY用于跳过指定目标,设成星号会跳过全部目标。
检查当前终端实际拿到的值,留意旧端口、错误协议和目标是否被排除。变量的设置方法、大小写行为需按操作系统处理;给curl写HTTP代理变量时沿用官方的小写名称。别把一次测试配置到处复制,日后换端口就会留下“前任代理”。
第三步:Git先看远程地址
在仓库中用git remote -v查看地址。Git官方文档说明,http.proxy可覆盖HTTP传输所用代理。HTTPS仓库应检查这项配置及来源,尤其是遗留的全局或仓库设置。
当前Git可用git config get --show-origin --all http.proxy查看常规值和来源;按网址或远程单独配置的例外,也需另查。没有输出时,仍应检查环境变量。
若地址使用SSH,排查SSH连接及其配置;HTTP代理设置不能直接替它安排路线。curl测试成功,也不能证明SSH远程已经连通。
仍失败时,按报错分层处理
连接被拒绝,先核对本地监听;超时再看节点、规则和目标;证书错误应检查时间与信任链。保留原设置,每次只改一项。接管范围不清楚,可对照本站规则、全局与TUN指南。
作者:仓老师机场观察
资料来源
资料核对日期:2026年10月10日。依据下列官方文档与一手规范整理,排查步骤为机制分析,不包含本站亲测或测速结果。
- everything curl:Discover your proxy:核对2026-10-10。用于不支持自动发现代理。
- curl手册:--proxy:核对2026-10-10。用于显式代理、协议前缀及单次请求。
- everything curl:Proxy environment variables:核对2026-10-10。用于协议变量、优先级和NO_PROXY。
- Git:git-config:手册版本2.56.0,页面所示更新2026-09-28;核对2026-10-10。用于http.proxy与core.sshCommand、配置来源。
评论