# 远程 DNS 解析

远程 DNS 解析是指由代理而非客户端把目标主机名转换为 IP 地址。对于 HTTP 代理，这是自动完成的，因为客户端会在请求或 CONNECT 行中发送主机名；对于 SOCKS5，则取决于客户端发送主机名（socks5h），还是发送预先解析的地址（socks5）。远程解析会让 DNS 查询留在出口网络中，并获得当地用户会得到的解析结果。


## 为什么重要

- 隐私：即使流量通过代理，本地查询仍会让你自己的解析器知道你访问了哪些主机。
- 准确性：CDN 和感知地理位置的 DNS 会按地区返回不同地址；从出口解析可像当地访客一样获得本地边缘节点。
- 分割视界站点：有些主机名只在特定国家/地区内可以解析，或会得到不同的解析结果。


## 如何启用

| 客户端 | 远程 DNS |
| --- | --- |
| cURL | socks5h://user:pass@host:port |
| Python requests | proxies={"https": "socks5h://..."} (requests[socks]) |
| Chrome | --proxy-server=socks5://host:port --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE host" |
| HTTP 代理 | 始终远程解析：主机名包含在请求中 |


## 在 ProxShift 中的工作方式

对于 HTTP(S) 以及发送主机名的 SOCKS5 连接，ProxShift 会在出口处解析目标名称；如果工具区分两种模式，请使用 socks5h。

来源：https://proxshift.com/zh/glossary/remote-dns
