首页 / 博客

用 curl 测试代理:查看 IP、位置、速度和错误原因

更新于 2026年11月7日 · 阅读约 3 分钟

四条 curl 命令,告诉你代理能不能用、IP 在哪里、速度如何,以及报错的真正含义。

在怀疑工具、指纹浏览器或脚本之前,先单独测试代理本身。macOS、Linux 和 Windows 10 及以上版本都自带 curl,几条命令就能回答绝大多数问题。

1. 代理能用吗?拿到的是哪个 IP?

curl -x http://user:pass@host:port https://api.ipify.org

你应该看到一个不是你自己的 IP 地址。在轮换线路上多运行几次,IP 应该会变化。

2. IP 在什么位置?

curl -x http://user:pass@host:port https://ipinfo.io/json

这会显示出口 IP 的国家、地区、城市和所属网络(ASN)。不同的地理定位库在城市级别有时会不一致,城市信息仅供参考。

3. SOCKS5

curl -x socks5h://user:pass@host:port https://ipinfo.io/json

使用 socks5h,让 DNS 由代理解析,而不是由你的电脑解析。

4. 速度怎么样?

curl -x http://user:pass@host:port -o /dev/null -s \
  -w "connect %{time_connect}s  tls %{time_appconnect}s  first byte %{time_starttransfer}s  total %{time_total}s\n" \
  https://example.com

运行 5 到 10 次,看常见值,而不是最好的那一次。在 Windows 上,把 /dev/null 换成 NUL,并去掉反斜杠写成一行。

看懂错误信息

  • 407 Proxy Authentication Required 或「CONNECT tunnel failed, response 407」:用户名或密码错误、用户名不完整,或者你的 IP 不在白名单里。
  • Could not resolve proxy:主机名拼错,或者密码里的特殊字符破坏了 URL。把 @ 编码为 %40,: 编码为 %3A。
  • Failed to connect / connection refused:端口错误,或者你这边的防火墙拦截了到该端口的出站连接。
  • 代理返回 502 或 503:网关找不到符合定位条件的出口 IP。放宽定位(用国家代替城市)或重试。
  • 超时:加上 --max-time 30,重试,或换一个地区的网关。
  • 网站返回 403 或验证码页面:代理本身没问题,是网站拦截了请求。换一种 IP 类型、降低频率,或修正请求头和指纹。

拿不准时加上 -v

curl -v 会打印每一步:连接代理、发送 CONNECT 请求、代理的回应和 TLS 握手,能清楚看到卡在哪里。分享输出之前请先删掉,因为里面包含你的代理账号密码。

更多指南

其他语言: English · Français · العربية · Tiếng Việt · Українська