首页 / 博客

代理格式详解:host:port:user:pass 和 user:pass@host:port 有什么区别

更新于 2026年11月7日 · 阅读约 3 分钟

同一个代理可以有四种写法。你的工具需要哪种格式、如何批量转换,以及密码中特殊字符的坑。

任何代理都由四个信息组成:主机(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 · Українська