代理格式化

统一代理协议头与地址格式

正在加载工具…

关于 代理列表格式化

代理格式化工具会把杂乱的代理地址列表规整为统一的协议头和排列方式,让来自多个供应商的列表可以直接粘贴进检测工具、客户端配置或脚本,而不必逐行手工修改。

代理地址没有统一的文本格式。有的供应商给的是 host:port:user:pass,有的给 user:pass@host:port,SOCKS 条目则可能带协议头也可能不带。实践中最要紧的区别是 socks5 与 socks5h:socks5 由客户端在本地解析主机名,socks5h 由代理端解析。两者混用会悄悄改变「谁看得到你的 DNS 查询」。

如何使用这个开发者工具

  1. 把代理列表粘贴进来,每行一条,供应商给的是什么混合格式都可以。
  2. 选择目标协议头,例如 http、socks5 或 socks5h,取决于使用方客户端的要求。
  3. 选择输出排布:把凭据放进 URL 授权部分的 URL 形式,或者冒号分隔形式。
  4. 格式化后核对识别成功的行数与粘贴的行数;无法识别的行会连同行号一起报告。
  5. 把规整后的列表复制进客户端配置,或者直接送入批量代理检测工具。

实例:三家供应商,一份列表

下面每一行来自不同厂商的导出文件。格式化工具能识别全部三种形态,并输出统一的协议头与排布。

混合输入
198.51.100.10:8080:alice:s3cret
socks5://bob:hunter2@203.0.113.24:1080
192.0.2.77:3128
统一为 socks5h 的 URL 形式
socks5h://alice:s3cret@198.51.100.10:8080
socks5h://bob:hunter2@203.0.113.24:1080
socks5h://192.0.2.77:3128

第三条没有凭据,所以授权部分只有主机和端口。请注意,把所有行统一成 socks5h 也改变了前两条的 DNS 行为,这里是有意为之,但它应当是一个明确的选择,而不是顺手的结果。

各协议头分别改变了什么

协议头由谁解析 DNS典型用途
http客户端,在连接之前普通 HTTP 正向代理、企业网关
https客户端,在连接之前经 TLS 访问代理本身;与「代理 HTTPS 流量」不是一回事
socks5客户端本地 DNS 可接受时的通用 TCP 隧道
socks5h代理端主机名必须在对端解析,避免本地 DNS 泄漏
socks4 / socks4a客户端 / 代理端遗留端点;socks4 不支持认证

常见问题排查

某一行被报告为无法识别。

成因 多数情况是多余的空格、地址后面追加的注释,或者密码本身含有冒号,导致冒号分隔形式产生歧义。

解决办法 删除行尾注释和首尾空白。密码中含冒号或 @ 时,改用 URL 形式并对这些字符做百分号编码。

代理在浏览器里可用,转换后在脚本里却失败。

成因 该工具期望的协议头名称不同。一些命令行工具接受 socks5h,而某些库只认识 socks5,外加一个单独的远程 DNS 开关。

解决办法 查阅客户端文档,确认它实际解析的协议头字符串,然后用该协议头重新格式化。

含特殊字符的凭据在下游被拒绝。

成因 URL 形式下授权部分按 URL 规则解析,密码中的 @、:、/ 和 # 会提前终止字段。

解决办法 对密码做百分号编码;若使用方接受,也可以改用冒号分隔形式输出。

转换之后重复条目仍然存在。

成因 两行规整后指向同一个端点,但在源文件里长得不一样,例如一条带协议头、一条不带。

解决办法 先做规整,再用列表对比工具找出并删除重复项,然后才运行批量检测。

适合用这个工具的场景

  • 把多家供应商的代理列表合并成单一客户端能读取的一个文件。
  • 有意识地把整份列表在 socks5 和 socks5h 之间切换,以控制 DNS 在哪一端解析。
  • 在运行批量代理检测之前准备一份干净列表,让失败结果反映代理本身而不是解析错误。
  • 把接手的旧配置转换成 URL 形式,便于放进环境变量。

应该换用别的工具的场景

  • 测试代理是否可用。格式化纯粹是文本操作,连通性请用批量代理检测工具。
  • 发现或获取代理。本工具只改写你已经拥有且有权使用的地址。
  • 保存凭据。这里不做任何存储,带密码的代理列表应当放进密钥管理系统。

隐私与数据处理

解析和改写完全在当前浏览器标签页内完成,列表不会发送到任何地方。代理条目通常内嵌用户名和密码,而这正是不该随意粘贴进未经确认的工具的那类凭据。这里既不保存也不记录任何内容,但请记住屏幕上的格式化结果本身仍然是明文密钥。

相关开发者工具

常见问题

socks5 和 socks5h 在实际使用中有什么区别?

使用 socks5 时,由你的机器解析主机名,再把得到的 IP 发给代理;使用 socks5h 时,主机名以文本形式发给代理,由代理解析。如果你使用代理的目的是改变「哪个网络看得到你的流量」,那么 socks5 仍然会把每一次查询暴露给本地解析器。

工具会验证地址是否可达吗?

不会。它只做文本解析和改写。一条格式完美的条目完全可能指向一台已经不存在的主机,这正是格式化与连通性检测要分成两步的原因。

该选哪种输出形式?

使用方接受完整代理 URL 时选 URL 形式,现代客户端和环境变量大多如此。面向较老的工具,以及期望 host:port:user:pass 的供应商后台时,选冒号分隔形式。

支持 IPv6 代理地址吗?

支持。在 URL 形式下,IPv6 字面量必须用方括号包裹,主机与端口之间的冒号才不会产生歧义,工具输出的就是这种形式。

我的代理凭据会被发送到哪里吗?

不会。解析在当前标签页内运行,不传输也不存储。但仍请把屏幕上的输出当作敏感信息,用完后清空输入框。

为什么输出行数和输入不一样?

空行和无法解析的行会被排除,工具会报告丢弃了多少行以及它们的行号,让你能够修复它们,而不是无声无息地丢掉条目。