同一个代理可以有四种写法。你的工具需要哪种格式、如何批量转换,以及密码中特殊字符的坑。
任何代理都由四个信息组成:主机(host)、端口(port)、用户名和密码。只是不同工具的写法不一样。如果代理刚买来就「用不了」,首先应该检查格式。
四种常见格式
host:port:user:pass gate.example.com:7777:alice:s3cret
user:pass@host:port alice:s3cret@gate.example.com:7777
http://user:pass@host:port http://alice:s3cret@gate.example.com:7777
host:port gate.example.com:7777 (IP 白名单,无需账号密码)
哪些工具用哪种格式
- 指纹浏览器和很多脚本工具导入列表时用
host:port:user:pass,每行一个代理。 - curl、Python requests、Node 以及大多数代码需要 URL 形式:
http://user:pass@host:port,SOCKS5 则用socks5h://...。 - 浏览器扩展和系统代理设置通常把主机、端口、用户名、密码分成几个输入框。
- Chrome 的
--proxy-server启动参数只接受host:port,无法携带账号密码,这时请用 IP 白名单或浏览器扩展。
前面的协议很关键
代理前面的 http:// 描述的是你和代理之间的通信方式,而不是你和网站之间的。HTTP 代理可以通过 CONNECT 隧道正常传输 HTTPS 流量,所以即使你访问的全是 https 网站,http://user:pass@host:port 也是正确的。写成 https:// 反而常常连不上,因为大多数网关的代理端口本身并不使用 TLS。
特殊字符的坑
在 URL 格式中,@、:、/、#、% 都有特殊含义。如果密码里有这些字符,需要进行编码:@ 写成 %40,: 写成 %3A,# 写成 %23。否则工具会解析出错误的主机,出现莫名其妙的 DNS 错误或 407 错误。只用字母和数字的密码可以完全避免这个问题。
带参数的用户名
住宅代理服务商经常把定位参数写进用户名,例如 alice-country-us-session-ab12cd34。它仍然只是用户名:整串保留,包括所有短横线和下划线,不要对它们编码。
快速转换列表
在任意表格软件中,按 : 分列,再按新的顺序拼接。或者在终端里:
awk -F: '{print "http://"$3":"$4"@"$1":"$2}' proxies.txt
Proxare 控制台可以直接生成 host:port:user:pass、user:pass@host:port、user:pass:host:port 或完整 http:// / socks5:// URL 格式的线路,按你的工具需要直接复制即可。
更多指南
其他语言: English · Français · العربية · Tiếng Việt · Українська