代理的地址、端口、账号和密码怎么填
每个可用的代理都由五个基本字段构成:协议、地址、端口、账号和密码。
这三个状态码看起来相似,但指向的是网络路径中完全不同的位置。
401 未授权(Unauthorized)表示目标服务器不认可或未接受你提供的凭据。服务器表示在为你提供所请求的资源之前,它需要知道你的身份。它通常会包含一个 WWW-Authenticate 响应头,说明它期望哪种令牌或登录方式。401 要靠改正目标网站的凭据来解决,而不是改代理的凭据。
403 Forbidden 表示服务器理解请求但拒绝执行,与是否登录无关,例如账号权限不足或 IP、地区被封锁。用同样的凭据重试不会改变结果。
407 需要代理身份验证(Proxy Authentication Required)属于代理,而非原始服务器。代理位于你和目标之间,它已判定你的流量在转发任何内容之前需要有效的账号和密码。只有在代理接受你的凭据后,它才会转发你的请求——此时目标服务器可能仍会由于其自身原因返回 401 或 403。关键响应头也有所不同:401 响应携带 WWW-Authenticate,而 407 响应携带 Proxy-Authenticate。如果你正在使用详细日志进行调试,该响应头是最明确的信号,表明你查看的是代理,而非网站。
大多数 407 错误都可追溯到一小部分配置错误。系统地逐一排查可以节省时间。
1. 账号和密码缺失或不正确。代理凭据可能根本没有包含在请求中,或者其中可能存在简单的拼写错误。对照提供商发给你的凭据仔细核对账号和密码。大小写不匹配或字段末尾多了一个空格就足以导致失败。
2. 凭据放在了错误的字段中。许多 HTTP 客户端库和工具会区分目标站点的凭据和代理凭据。Authorization 请求头用于向目标服务器验证你的身份;Proxy-Authorization 请求头用于向代理验证你的身份。将代理的账号和密码放入 Authorization 字段每次都会产生 407,因为代理根本看不到它们。
3. 特殊字符未经 URL 编码。@、:、%、# 和 & 等字符在 URL 中具有特殊含义。如果你的密码是 P@ss:w0rd%,@ 会破坏 user:password@host 的解析,而 % 可能被解释为转义序列的开头,导致代理实际收到的密码被静默更改。修复方法是将每个特殊字符进行 URL 编码——例如 @ 变为 %40。在 Python 中使用 urllib.parse.quote(),在 JavaScript 中使用 encodeURIComponent()。
4. IP 白名单未包含你的地址。有些代理提供商不要求每次请求都带凭据,而是只允许一份事先登记的来源 IP 名单里的地址访问。如果你发出的请求所在的公网 IP 地址不在该列表中,代理可能返回 407 或直接关闭连接,甚至不会查看账号或密码。确认代理看到的 IP(你可以使用一个简单的 curl 命令来实现)并验证它与提供商记录的地址相符。
5. 协议填错了。HTTP 代理无法验证 SOCKS5 客户端,SOCKS5 代理也不会接受 HTTP 请求。协议不匹配通常表现为连接或握手错误,而不是 407:HTTP 客户端连到 SOCKS5 端口根本收不到 HTTP 响应。重新输入凭据之前,也先查一下这一项:到「我的资产」里看这个 IP 用的是哪种协议。Proxy302 请按所购 IP 的协议使用 http:// 配 2222 端口,或 socks5h:// 配 3333 端口。
在修改应用程序代码之前,先在终端中使用 curl 测试代理。
使用 -x 将 curl 指向你的代理。不带凭据的调用如下所示:
curl -v -x http://proxy.example.com:8080 https://ipinfo.io/json仅为示例:请把占位内容换成你自己的值。
-v 会打印完整的交互信息,包括代理要求验证时返回的 Proxy-Authenticate 响应头,以及 curl 发回的 Proxy-Authorization 请求头。如果代理需要账号和密码,请用 -U 添加:
curl -v -x http://proxy.example.com:8080 -U "myuser:mypassword" https://ipinfo.io/json仅为示例:请把占位内容换成你自己的值。
如果成功了——你从目标处看到了 HTTP 200——代理凭据是正确的,问题在于应用程序传递这些凭据的方式。如果仍然失败并显示 407,则凭据本身是错误的,或 IP 未被允许。注意:-U(即 --proxy-user)是给代理的账号和密码;-u(即 --user)是给目标网站的。两个很容易搞混。
浏览器在收到 407 时通常会弹出代理凭据提示。若看到的是错误而非弹窗,请在系统代理设置中核对地址和端口,删除已保存的代理凭据(Windows 凭据管理器或 macOS 钥匙串)后刷新让浏览器重新询问;如需保存账号密码请使用代理扩展。在 macOS 上也可在「系统设置 → 网络 → 详细信息 → 代理」中填写。在使用 Windows 域登录进行代理身份验证的公司网络中,请询问你的 IT 团队。
requests 库在 proxies 字典中传递代理凭据。构建包含账号和密码的代理 URL,并记住对任何特殊字符进行编码:
import urllib.parse
username = "myuser"
password = "P@ss:w0rd%"
encoded_password = urllib.parse.quote(password, safe="")
proxies = {
"http": f"http://{username}:{encoded_password}@proxy.example.com:8080",
"https": f"http://{username}:{encoded_password}@proxy.example.com:8080",
}仅为示例:请把占位内容换成你自己的值。
两个常见错误:字典缺少 https 键(HTTPS 请求不走代理、直接发出,看到的是你自己的 IP,而不是 407);以及密码未编码,这才会导致 407。
作为替代方法,设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量。在 macOS 或 Linux 上:export HTTP_PROXY="http://user:pass@host:port"。在 Windows PowerShell 上:$env:HTTP_PROXY = "http://user:pass@host:port"。Requests 会自动读取这些变量。
在 Node.js 24.5 及以上(或 22.21 及以上)版本中,设置 NODE_USE_ENV_PROXY=1,再配合 HTTPS_PROXY=http://user:pass@host:port,内置的 http/https 模块和 fetch 就会走代理。旧版本或要用 SOCKS5 时,需要装一个 agent 库,例如 HTTP 代理用 https-proxy-agent,SOCKS5 用 socks-proxy-agent,并用 encodeURIComponent 编码密码。
很多命令行工具和库会从环境变量读取 HTTP_PROXY 和 HTTPS_PROXY(它们与 Windows、macOS 的系统代理设置是两回事),格式为 http://username:password@host:port。在 macOS 或 Linux 上,在 shell 配置文件中设置;在 Windows 上,在环境变量对话框中设置。
当地址、端口、协议和凭据都正确且错误仍然存在时,请联系提供商。典型情况是白名单尚未更新以包含你当前的公网 IP、凭据尚未激活,或代理入口已离线。
动态住宅代理适合这类用途:你可以选择出口国家(覆盖 195 个以上国家和地区,支持的线路还可细化到州和城市),并按流量计费,用多少付多少。设置方法见动态住宅页面。下表是我们最近一次每小时检测时 7 个国家的出口所在位置;探测器请求的是 ChatGPT,它只是一个示例目标。要检查你自己的出口,请看代理位置检查指南。
| 项目 | 城市 | 运营商网络 | ASN |
|---|---|---|---|
| 美国 | Denver, Colorado | Comcast Cable Communications, LLC | AS7922 |
| 英国 | Chesterfield, England | Plusnet | AS6871 |
| 德国 | Köln, North Rhine-Westphalia | NetCologne Gesellschaft fur Telekommunikation mbH | AS8422 |
| 日本 | Kashiwazaki, Niigata | NTT DOCOMO BUSINESS,Inc. | AS4713 |
| 新加坡 | Singapore | Whiz Communications Pte Ltd | AS135600 |
| 巴西 | Ecoporanga, Espírito Santo | KMM TELECOM LTDA-ME | AS264542 |
| 印度尼西亚 | Bandar Lampung, Lampung | PT Telekomunikasi Indonesia | AS7713 |
Proxy302 探测器每小时检测一次,本次检测时间:2026 年 10 月 23 日 15:47 UTC。每个国家通过一个动态住宅出口、经公开的 Proxy302 入口向 ChatGPT 发一次请求。IP 只公开前三段。每国一个样本,不是平均值,之后的检测结果会不同。
打开动态住宅页面,选择线路,「协议」保持 HTTP 或改选 SOCKS5,然后点击「确认费用并生成」。
打开「我的资产」(控制台里放着你买到的全部代理),复制 HOST(地址)、PORT(端口)、USERNAME(账号)和 PASSWORD(密码)。「连接工具」页(控制台里教你把代理接到各种软件的页面)里有填好你自己连接信息的现成示例。
把这些信息填入你正在设置的浏览器或软件。
通过代理访问 https://ipinfo.io/json 确认出口。
在中国大陆,先在「连接工具」页打开辅助工具,使用代理期间保持开着。
低价线路每 GB 收费 US$1.50,100 GB 套餐每 GB US$1.35,300 GB 每 GB US$1.20。不提供免费试用,最小购买单位为 1 GB。可用的出口位置每天都会变化。
随 407 响应返回的 Proxy-Authenticate 响应头列出了代理支持的身份验证方法——例如 Basic、Digest、NTLM 或 Negotiate。Basic 是简单的账号密码代理中最常见的;NTLM 或 Negotiate 表示 Windows 域或 Kerberos 环境,可能需要额外的客户端支持。
有些代理只在会话的第一个请求时要求验证,或者你的公网 IP 变了而代理又用了 IP 白名单时才会拒绝。
不一定。407 表示代理工作正常并正在执行其身份验证策略。请求已到达代理,代理也做出了适当的响应。问题在于客户端未提供代理认为可接受的凭据。如果代理完全不可达,你会看到连接超时或连接被拒绝的错误,而不是 407。
访问 https:// 时 curl 先向代理发 CONNECT;代理返回 407 时目标服务器没有响应,%{http_code} 保持 000。用 -w "%{http_connect}" 或 -v 输出中的 "CONNECT tunnel failed, response 407" 查看代理的状态码。
不应该。407 是配置问题,不是瞬时故障。先修复凭据、编码或白名单,然后重试一次以确认。
产品观察 · 确认日期:
站点的产品事实表(数值已于 2026 年 10 月 18-19 日对照控制台、后端和价格表核对):产品、美元价格(1 PTC = 1 美元)、租期、协议与端口、国家数、数量上限、没有免费试用。
产品观察 · 确认日期:
探测器的公开 JSON proxy302.com/live/connectivity/chatgpt.json,读取于 2026 年 10 月 23 日 15:47 UTC:每个出口国家一次请求,经动态住宅出口;出口城市、ASN、网络和响应时间。
官方文档 · 确认日期:
读取于 2026 年 10 月 24 日:从 Node.js v24.5.0 和 v22.21.0 起,设置 NODE_USE_ENV_PROXY=1 或 --use-env-proxy 后,全局 agent 会使用 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY。
注册账号、充值一次,就能选动态住宅、静态 ISP 或数据中心 IP,几分钟配进你的浏览器。