跳至正文
中文
立即开始

代理认证

代理认证会在代理转发请求前检查应用是否有权使用代理,通常采用用户名和密码认证。

文章目录(8 个章节)

代理认证的工作原理

应用连接到代理服务器后,代理会先检查应用提供的认证信息,再转发流量。使用 HTTP 代理时,如果未提供认证信息或认证信息无效,通常会返回:

HTTP/1.1 407 Proxy Authentication Required

客户端随后携带 Proxy-Authorization 请求头重试。在 Basic 认证中,username:password 会经过 Base64 编码,但不会加密。该请求头由代理处理,目标网站通常收不到。如果 SOCKS5 代理启用了认证,认证会在 SOCKS 握手期间完成,而不是通过 HTTP 请求头完成。

密码认证与 IP 白名单

用户名和密码认证适用于网络经常变化的环境。IP 白名单则根据连接代理时使用的公网 IP 授予访问权限。

方式 适用场景 主要限制
用户名和密码 笔记本电脑、服务器或 IP 经常变化的环境 认证信息必须安全保存
IP 白名单 使用固定公网 IP 的服务器 客户端 IP 变化后会失效

代理服务可以要求使用任一种方式,也可以将两者结合使用。

安全配置认证信息

  1. 使用正确的端点。 复制主机、端口、用户名和密码。代理认证信息与网站登录信息相互独立。

  2. 优先使用专用的认证信息字段。 这样可以避免 URL 解析问题。如果应用要求填写代理 URL,请对认证信息中的 @、: 和 # 等字符进行百分号编码。

  3. 测试单个请求。 使用占位符,避免在 shell 历史记录中留下生产环境的认证信息。

    curl --proxy http://HOST:PORT --proxy-user 'USERNAME:PASSWORD' https://example.com/
  4. 保护认证信息。 不要将认证信息提交到源代码管理系统,也不要在日志中输出。如果服务提供经 TLS 加密的代理端点,请使用该端点,因为目标网站的 HTTPS 无法加密客户端与代理之间以明文传输的认证信息。

出现 407 Proxy Authentication Required 响应,说明代理没有收到可接受的认证信息。

FlashIP 的代理认证

连接 FlashIP 轮换住宅代理时,需要使用提供的主机、端口、用户名和密码。静态 ISP 代理和数据中心代理也采用用户名和密码认证。请从控制台复制这些信息,粘贴到工具的代理字段中,不要手动重新输入。

常见问题

代理认证和登录网站是一回事吗?

不是。代理认证让应用获得代理的使用权限。代理转发请求后,网站登录还要使用单独的认证信息、Cookie 或令牌。

为什么代理密码正确,仍然出现 407?

客户端可能没有把认证信息发送到正确的主机和端口。检查代理认证字段,删除无意输入的空格,并确认客户端如何处理特殊字符。

代理认证会加密或隐藏流量吗?

不会。代理认证只控制谁可以使用代理。流量是否加密取决于连接协议,而代理会改变网站看到的 IP 地址。

相关术语

查看全部术语