SOCKS5 和 SOCKS5h 有什么区别:域名在哪里解析
使用 curl 配置科学上网代理时,socks5:// 与 socks5h:// 的关键区别是目标域名由谁解析:前者由 curl 本地处理,后者把域名交给 SOCKS 代理。后者不是新版协议,也不自动代表更快或更安全。应先确认软件对该写法的定义,再按故障位置选择。
同一代理,可以接收不同地址
DNS 解析是把网站域名转换成可连接的地址。curl 的 SOCKS 文档给出两种模式:socks5:// 先在本地解析,再请求代理连接地址;socks5h:// 发送目标域名,让代理端处理。代理地址与账号可以相同,变化的是请求交给代理的信息。
SOCKS5 标准 RFC 1928允许请求中的目标地址采用 IPv4、IPv6 或域名。因此,多出来的 h 是 curl 用来选择域名处理方式的标记,不是另一个 SOCKS 协议版本。其他应用即使只写“SOCKS5”,也可能另有“通过代理解析 DNS”的开关,应查其自身文档。
先分清代理域名和网站域名
这项设置针对目标网站,不意味着建立代理连接前完全不需要本地解析。如果代理本身用域名表示,curl 还得先找到代理服务器。curl 手册分别说明本地与代理端解析选项,并区分“无法解析代理”和“无法解析目标主机”的错误。
报错发生在找到代理之前,应先检查代理地址、拼写与当前网络;若已连到代理,目标解析或转发失败,再核对相应阶段。不能看到 DNS 三个字,就认定换成 socks5h 一定能修复。
把解析模式作为一次对照
固定同一个代理、目标域名与网络,只切换解析方式。保留错误原文与发生阶段,再比较能否建立目标连接,而不是同时换节点、改 DNS 和关闭其他功能。
如果本地解析方式失败、代理端方式成功,这提示两条解析或地址连接路径存在差异;它仍不能单独证明原因就是域名污染。代理端得到的地址、连接策略及目标可达性也可能不同。反向结果同样应查代理端处理能力。
记录中写清代理地址形式、使用的软件和具体选项,不能只写“开了 SOCKS5”。若目标本就用数字地址表示,便没有同样的域名解析过程,不能直接拿它与域名访问比较。
解析位置不等于加密保证
将目标域名交给 SOCKS 入口,意味着把这项处理交给代理程序,并不使所有 DNS 请求都消失。若入口是本机客户端,后续解析位置仍取决于其实现和配置,不能只看前缀就认定发生在远端。应用内的选择也只适用于该应用的相应请求,不能据此判断其他程序的路径。
RFC 1928 将保护效果与实际认证和封装机制关联。判断隐私时,还需区分本地代理入口、远端传输和网站连接,不能仅凭地址前缀中的一个字母作结论。
资料核对日期:2026年10月8日。