407 表示什么
407 响应来自代理服务器本身。代理服务器要求先提供用户名和密码,才会转发请求。原始响应通常如下:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="proxy"
代理服务器已经拦下请求,所以更换目标网站或请求头并不能解决问题。需要修正认证信息,或调整工具发送认证信息的方式。
常见原因
- 认证信息错误或已过期。 可能是输入有误、多了空格,或保存后密码发生了变化。
- 工具没有发送认证信息。 有些工具会忽略代理 URL 中的认证信息,需要在单独的用户名和密码字段中填写。
- 密码中含有特殊字符。
@、:或#等字符如果没有编码,会导致 URL 格式错误。 - 字段顺序错误。
host:port:user:pass和user:pass@host:port是两种不同的格式。混用格式会发送错误的字段值。
如何解决
-
重新复制认证信息。 不要手动输入。在 FlashIP 控制台中,点击 Copy All 可一次复制完整的代理信息。
-
在当前工具之外测试。 用 curl 发送一次请求。如果返回 200,说明认证信息有效,问题出在工具设置上。
curl -x http://USERNAME:PASSWORD@HOST:PORT -I https://example.com -
使用工具的认证字段。 在工具的代理认证字段中填写用户名和密码,不要将其直接写在 URL 中。
-
编码特殊字符。 如果必须使用 URL,请将
@替换为%40、:替换为%3A、#替换为%23。
407、401 与 403 的区别
这三种状态码都表示访问遭到拒绝。判断是谁拒绝了请求,就能确定该从哪里排查。
| 状态码 | 返回方 | 含义 |
|---|---|---|
| 401 Unauthorized | 网站 | 网站要求登录。 |
| 407 Proxy Authentication Required | 代理服务器 | 代理服务器要求提供有效的认证信息。 |
| 403 Forbidden | 网站 | 网站拒绝提供内容,通常是因为 IP 或客户端遭到封禁。 |
常见问题
407 错误是网站导致的吗?
不是。407 来自代理服务器。请求在到达网站前就已停止,因此需要检查认证信息或工具设置。
为什么 curl 可以正常使用,但我的工具返回 407?
不同工具发送代理认证信息的方式不同。有些工具会忽略代理 URL 中的认证信息,此时应在工具的代理认证字段中填写用户名和密码。
重试能解决 407 错误吗?
不能。收到有效认证信息前,代理服务器会一直拒绝请求,重试只会再次出现同一错误。
仍然遇到 407?请通过 Telegram 将完整错误信息和所用工具发送给我们的团队,我们会帮你检查设置。