SOCKS5 本地解析 vs 远程解析

SOCKS5 支持两种解析思路:本地解析(socks5://,先在本机把域名变成 IP 再交给代理)与远程解析(socks5h://,把主机名交给代理去解析)。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

SOCKS5 本地解析 vs 远程解析

一句话定义

SOCKS5 支持两种「谁来解析域名」的思路:本地解析(先在本机把域名变成 IP,再把 IP 交给代理)与远程解析(把主机名交给代理服务器,由代理侧解析)。

核心机制 / 工作原理

本地解析(socks5://)

本地:anyrouter.top → 104.17.x.x
发送给代理:请连接 104.17.x.x:443

本机先完成 DNS,代理只拿到 IP。

远程解析(socks5h://)

发送给代理:请连接 anyrouter.top:443
代理服务器:anyrouter.top → 155.102.x.x

主机名交给代理,代理用它自己所在环境的 DNS 解析。

curl 中 socks5:// 通常表示本地解析;socks5h://--socks5-hostname 表示把主机名交给代理解析。

最小例子 / 最小场景

# 本地解析:本机 DNS 先定 IP
curl.exe -vk --proxy socks5://127.0.x.x:7891 https://anyrouter.top/

# 远程解析:域名交代理侧解析
curl.exe -vk --proxy socks5h://127.0.x.x:7891 https://anyrouter.top/

边界与易混淆点

  • 诊断价值极高:若 socks5h 成功而 socks5 失败 → 本机 DNS 路径给错了 IP,远端解析可用(见 proxy-and-dns-separation)。
  • 两个都失败:可能 Mihomo 仍自己解析、规则错误,或 Oracle1 与 Oracle2 环境不同(见 mihomo-dns-redir-host-vs-fake-ipdns-wrong-ip-tls-handshake-failure-debug)。
  • 远程解析把「解析决策位置」搬到了代理出口侧,这正是「让解析跟着出口走」的关键手段之一。
  • 注意 socks5h 依赖代理服务器本身能正确解析;若代理出口网络也被污染/过滤,远程解析同样可能拿到错误答案(见 dns-filtering-hijacking-pollution)。
创建于 2026/7/31 更新于 2026/7/31