常见的代理认证协议类型
平时上网时,很多人会用到代理服务器来访问一些受限制的网站或提升网络稳定性。在设置代理的时候,经常会遇到“代理认证”这个环节。其实,不同的代理服务支持的认证协议不一样,搞清楚这些协议能帮你更顺利地配置网络。
HTTP 代理认证
最常见的就是 HTTP 代理,它一般用于网页浏览。这类代理通常使用 Basic 或 Digest 认证方式。比如你在公司内网连 Wi-Fi 时,弹出一个登录页面让你输入账号密码,背后很可能就是 HTTP Basic 认证在起作用。
Basic 认证虽然简单,但密码是 Base64 编码传输的,并不加密,所以只适合内网或配合 HTTPS 一起使用。
Proxy-Authorization: Basic dXNlcjpwYXNz
HTTPS 代理(CONNECT 方法)
当你访问的是 https 网站时,代理服务器会通过 CONNECT 方法建立隧道。这时候代理本身不会解析你的流量内容,但依然可以在连接前要求认证。这种认证机制通常也是基于 Basic 方式,在客户端发起 CONNECT 请求时带上凭证。
举个例子,你在家用代理上某些海外购物网站,浏览器自动填了代理账号密码,其实就是通过这种方式完成认证的。
SOCKS 协议支持情况
SOCKS 是另一种常用的代理协议,尤其是 SOCKS5,它比 HTTP 更灵活,能支持 TCP 和 UDP 流量,适合用在游戏加速、P2P 下载等场景。
SOCKS5 支持用户名/密码认证,属于协议层的标准功能。客户端连接时会先和代理服务器协商认证方式,如果开启了认证,就必须提供正确的凭据才能继续。
<b>认证请求格式(简化):</b>
版本号:0x05
认证方式数量:0x01
认证方式:0x02(用户名/密码)
而较早的 SOCKS4 协议也支持简单的用户认证,但只传用户名,安全性更低,现在用得比较少。
FTP 代理中的认证
虽然现在用 FTP 的人少了,但在一些老系统或企业环境中还是存在的。FTP 代理通常支持标准的用户名密码登录,并且可以通过代理指令(如 SITE、PROXY 等)进行转发控制。认证过程和直接连 FTP 服务器类似,只是中间多了一层代理转发。
实际使用中的小贴士
比如你买了一个付费代理服务,商家给的配置说明里写了支持“HTTP/SOCKS5”,那基本就表示这两种协议都带认证功能。你在浏览器或软件里填写代理地址时,记得把用户名密码按格式填进去,像这样:
http://user:pass@proxy.example.com:8080
socks5://user:pass@proxy.example.com:1080
有些软件不支持在地址中直接写密码,就得在设置界面单独填写认证信息,不然会提示“407 Proxy Authentication Required”。
再比如你在用爬虫程序时,经常需要轮换代理 IP,如果代理服务商用了认证机制,代码里就得加上对应的 headers 或代理参数,否则请求会被拒绝。