固定 IP 代理突然连不上了,不知道是代理挂了、你的网络断了还是目标站封了你。本文教你四步排查法,配合 curl 脚本和 cron 持续监控方案,3 分钟定位问题。

一、先确认你的网络本身是通的
不要用亚马逊测本地网络——跨境链路不通不等于你的网有问题。用百度来测:
curl -o /dev/null -s -w "%{http_code}\n" --connect-timeout 10 https://www.baidu.com
返回 200 = 网络 OK,返回 000 = 本地掉线或 DNS 没解析。
⚠️ curl 的隐藏坑
curl 默认的 User-Agent 被 AWS WAF 识别为爬虫,返回 503。
AWS WAF 还会用 JA3 TLS 指纹识别——原生 curl 基于 OpenSSL,暴露非浏览器特征。
两种替代方案:
- curl-impersonate:修改底层 TLS 库,用 BoringSSL 模拟 Chrome 指纹
- Playwright:配合浏览器指纹文件,完整模拟真实浏览器
✅ 你可以立刻做
在终端运行上方 curl 百度命令。返回 200 再往下排查;返回 000 先修本地网络或 DNS,别浪费时间测代理。
二、查代理本身的连通性
用纯文本 IP 查询接口 ifconfig.me(不会被 WAF 拦截):
curl -x http://user:pass@proxy:8080 -s --connect-timeout 5 https://ifconfig.me
| 现象 | 原因 | 处理方式 |
|---|---|---|
| Could not resolve host | 代理域名解析失败 | 检查 DNS 或代理地址是否正确 |
| Connection refused | 代理端口未开启或被防火墙阻止 | 联系供应商确认端口状态 |
| 407 | 认证失败 | 检查用户名密码或 IP 白名单 |
表1:代理连通性常见错误速查
如果返回的 IP 和之前记的不一样——固定 IP 不该换 IP——越早发现损失越小。
✅ 你可以立刻做
用 curl -x 走 ifconfig.me,对照表1 看报错类型。记下当前出口 IP,和供应商承诺的固定 IP 比对——不一致立刻联系客服。
三、排查是不是目标站封了你
目标站返回 403 或 connection refused → 出口 IP 已被标记。
另一种情况:返回 200 但页面内容不是正常业务页(验证码页或空白页)。
不光看状态码,把状态码和响应体大小一次拿到:
curl -x http://user:pass@proxy:8080 -s -w "\nHTTP_CODE:%{http_code}\nSIZE:%{size_download}\n" --connect-timeout 10 -o /dev/null https://target-site.com
内容特征断言:检查页面是否含有 captcha / verify 关键词,或检查是否缺失预期的业务标记。
✅ 你可以立刻做
对目标站跑带 -w 的 curl,同时看 HTTP_CODE 和 SIZE。403 换 IP;200 但 SIZE 异常小,打开 /tmp 响应文件搜 captcha 关键词。
四、别等出问题再测,做持续监控
用 cron 每 30 分钟自动跑一次。完整监控脚本:
#!/bin/bash
# --- 配置区:改成你的代理和目标站 ---
PROXY="http://user:pass@proxy:8080"
TARGET="https://your-target-site.com"
LOG_FILE="/var/log/proxy-check.log"
# 通过代理请求目标站,保存响应体到临时文件
HTTP_CODE=$(curl -x "$PROXY" -s -o /tmp/proxy_response.html -w "%{http_code}" --connect-timeout 15 "$TARGET")
SIZE=$(wc -c < /tmp/proxy_response.html)
# 检查页面是否包含预期业务关键词(改成你目标站的特征词)
CONTENT_CHECK=$(grep -ci "expected_keyword" /tmp/proxy_response.html)
# 写入日志,方便事后排查
echo "[$(date '+%Y-%m-%d %H:%M:%S')] HTTP:$HTTP_CODE SIZE:$SIZE MATCH:$CONTENT_CHECK" >> "$LOG_FILE"
# 任一条件不满足则告警:非 200 / 页面过小 / 关键词缺失
if [ "$HTTP_CODE" != "200" ] || [ "$SIZE" -lt 500 ] || [ "$CONTENT_CHECK" -eq 0 ]; then
echo "WARNING: Proxy check failed!" >> "$LOG_FILE"
fi
想更进一步?接到 UptimeRobot 设置关键词匹配,页面内容异常时自动告警。
✅ 你可以立刻做
复制脚本到服务器,改 PROXY、TARGET 和 expected_keyword,加 crontab:*/30 * * * * /path/to/script.sh。先手动跑一次确认日志正常写入。
常见问题 FAQ
Q:curl 超时和返回 403 有什么区别?
超时通常是代理连通性或 DNS/端口问题;403说明请求已到达目标站,但 IP 或请求特征被风控拦截。排查路径完全不同。
Q:静态代理监控应该多久跑一次?
生产环境建议每 15–30 分钟 自动检测一次,并检查响应体大小和关键词。关键业务可缩短到 5 分钟,配合 UptimeRobot 关键词告警。
Q:怎么判断是目标站封了我的 IP?
先用本地网络直连目标站确认能访问,再通过代理访问。若本地正常、代理 403,且换 IP 后恢复,基本可判定为目标站封禁该 IP 段或代理出口。
五、3 分钟完成完整检测
008ip.com 把以上四步合并成一次自动诊断,3 分钟即可拿到完整报告。
✅ 你可以立刻做
不想手动跑四步?打开 008ip.com,填入代理地址,一次拿到连通性 + IP 类型 + 目标站可达性的合并报告。
延伸阅读:
📌 核心要点
- ✓ 先用百度测本地网络,排除自身问题
- ✓ 用 ifconfig.me 查代理连通性,注意区分 DNS、端口、认证三类错误
- ✓ 不光看状态码,同时检查响应体大小和内容特征
- ✓ cron 持续监控 + UptimeRobot 关键词告警,不等出问题才发现




