代理突然无法连接,不要直接判定服务商故障,报错信息里往往包含故障线索。浏览器弹出ERR_PROXY_CONNECTION_FAILED,终端curl命令卡住,或是返回407认证失败,不同报错对应不同问题。查看错误码排查,比反复开关代理更快定位问题。
第一步核对代理地址。确认IP和端口输入无误,冒号不能使用中文输入法输入,HTTP代理和SOCKS5代理类型不能选错。很多软件默认使用HTTP代理,填入SOCKS5端口自然无法连通。如果代理地址填写域名而非IP,有可能域名解析失败,或是解析指向已经下线的旧服务器。执行nslookup检测域名解析结果。动态IP代理很容易出现这类问题,服务商更换出口IP,本地还保存旧地址,前往服务商后台复制最新配置。免费代理失效属于常态,昨天可用今天断开很常见。

认证信息和IP白名单也是高频故障点。用户名密码是否过期,密码内特殊字符可能造成客户端解析异常,部分场景需要转义字符或者更换填写方式。不少代理服务要求提前把本机公网IP加入白名单,切换Wi-Fi、重启光猫之后公网IP变更,代理服务就拒绝连接。这时登录服务商后台更新白名单,或者切换为账号密码认证模式。
单独测试网络连通性。ping代理IP不一定有效,很多代理服务器屏蔽ICMP协议,ping不通不等于端口不通。使用telnet IP 端口,或者nc -vz IP 端口检测TCP连通状态。Windows系统可以使用Test-NetConnection。端口无法连通,可能本地防火墙拦截、公司网络封禁、路由器限制,或是代理服务器本身故障。切换手机热点测试,如果热点可以正常连接,原有网络环境存在限制。
多层代理叠加会造成很多奇怪故障。系统代理、浏览器插件、终端环境变量http_proxy和https_proxy、Docker配置、Git配置,每一处都可能留存旧代理地址。终端curl、wget一般不会读取系统代理,只识别环境变量。执行env | grep -i proxy查看环境变量,清理过期配置。浏览器插件如果保存旧地址,先关闭插件或者更新配置。PAC脚本地址错误也会失效,可以临时切换直连测试,直连正常就代表代理配置出错。
如果你自己搭建代理,IP异常大多是服务器公网IP变动。云服务器重启之后,非弹性IP会发生变化,绑定弹性IP或者部署DDNS可以减少这类问题。服务端监听地址要设置0.0.0.0,不能填写127.0.0.1,外部设备才能够接入。安全组与系统防火墙都要放行对应端口。客户端填写地址必须为公网IP或者域名,内网地址外网无法访问。端口转发规则修改之后,客户端配置同步更新。
代理服务商侧状态也要检查。登录后台确认套餐是否到期、并发连接数是否超限、IP有没有被目标网站封禁。部分隧道代理域名不变,但不同端口对应独立会话,端口填写错误直接连接失败。API提取模式每次获取IP都不一样,手动填写旧IP肯定无法使用,这类场景改用API自动获取,或者使用支持IP自动切换的客户端。
还有两处细节容易遗漏。系统时间偏差过大,会造成代理认证失败,部分协议校验时间戳。DNS缓存也会带来问题,代理地址为域名时,本地缓存旧解析记录,访问指向错误IP。清除本地DNS缓存,或者更换DNS服务器测试。修改配置之后重启相关应用,浏览器需要完全关闭重开,终端新开窗口。如果排查困难,可以执行curl -v -x http://user:pass@ip:port https://example.com,完整打印握手流程,定位故障环节。把完整报错信息检索,比盲目试错效率更高。