接入指南
cURL 代理命令:用户名与密码
在改动自己的代码之前,用 curl 确认代理能否工作是最快的办法。一个参数就能设置代理;出错时,退出码会告诉你问题出在哪一步。
开始之前
- curl:macOS、大多数 Linux 发行版和较新的 Windows 都自带。
- 在 Windows PowerShell 中请输入 curl.exe:在 Windows PowerShell 5.1 里,单独的 curl 是 Invoke-WebRequest 的别名。
- 服务页面上的 HOST、PORT、USERNAME 和 PASSWORD。
你的连接信息
登录控制台,打开你购买的服务。服务页面上会显示该服务的主机、端口、用户名和密码。ProxyPanda 没有一个统一的固定地址,所以每次都请从那里复制。指南中的代码使用下面这些占位符,请逐一替换成你自己的值。
- HOST
- 该服务的代理地址,按服务页面上显示的原样填写。
- PORT
- 要连接的端口。请和主机一起复制,因为不同服务的端口可能不同。
- USERNAME
- 你的代理登录名。它与你登录控制台所用的邮箱是分开的。
- PASSWORD
- 请完整复制。住宅代理在控制台中选择的选项会附加在密码末尾,凭记忆手动输入的密码会丢失这些选项。
把你用来连接的 IP 地址加入服务的白名单,就可以不用用户名和密码。这时代码里只需要 HOST 和 PORT。
示例都使用 HTTP,它可以通过加密隧道访问 https 网站。SOCKS5 同样可用:住宅代理的端口两种都接受,ISP 和数据中心代理在控制台里切换协议。
步骤
通过代理发送一个请求
-x 接收带登录信息的代理 URL。返回的就是网站看到的 IP 地址。
terminal curl -x http://USERNAME:PASSWORD@HOST:PORT https://api.ipify.org不把登录信息写进 URL
-U 单独传递用户名和密码,这样其中的符号也不用做百分号编码。
terminal curl -x http://HOST:PORT -U USERNAME:PASSWORD https://api.ipify.org让整个 shell 都走代理
curl 会读取环境变量 https_proxy,所以在取消设置之前,这个终端里的每条命令都会使用代理。
terminal export https_proxy="http://USERNAME:PASSWORD@HOST:PORT" curl https://api.ipify.org unset https_proxy在终端里观察轮换
每条 curl 命令都会新开一条连接。连续运行三次,对比输出。
terminal for i in 1 2 3; do curl -s -x http://USERNAME:PASSWORD@HOST:PORT https://api.ipify.org echo done
轮换 IP 与粘性 IP
住宅代理选“随机 IP”时,这个循环应该打印三个不同的地址。选“粘性 IP”,或者使用 ISP、数据中心 IP 时,它会把同一个地址打印三次。用这个循环可以很快确认一组凭据处于哪种模式。
常见错误与解决办法
curl: (56) CONNECT tunnel failed, response 407
代理拒绝了登录。先换成 -U 的写法,排除编码问题,再从服务页面重新复制密码。
curl: (7) Failed to connect
从你所在的网络连不到 HOST:PORT。核对这两个值,并检查你的网络防火墙是否拦截了到该端口的出站连接。
curl: (28) Connection timed out
代理或网站没有及时响应。--connect-timeout 和 --max-time 可以控制 curl 的等待时间。住宅节点有时较慢,先重试一次。
curl: (35),并附带 SSL 或 TLS 信息
代理 URL 以 https:// 开头。代理地址请用 http://;curl 在隧道内与网站之间依然使用 TLS。
报错信息不够详细
加上 -v。以 < 开头的行是代理自己的回复,包括在联系网站之前就返回的 407。
其他接入指南
有不明白的词? 术语表用大白话解释。
卡在某一步了?
把命令和报错贴到 Discord,记得先删掉密码。那里的人大多遇到过这些错误。