当您发送标准 DNS 查询时,您的 ISP 和 DNS 解析器都可以看到您的 IP 地址和您查询的域名。Cloudflare 的 Tor onion 服务将您的 DNS 查询路由过 Tor 网络,这比直接进行请求确保了高得多的匿名性。解析器永远看不到您的 IP 地址,您的 ISP 也无法确定您尝试解析了哪个域名。
在这篇博客文章 ↗中阅读关于此服务的更多信息。
与直接将流量发送到 IP 地址的传统 DNS 模式不同,Tor 网络在路由流量时不公开 IP 地址。这意味着与隐藏解析器的所有连接都必须通过 Tor 客户端。
在开始之前,请访问 Tor Project 网站 ↗ 下载并安装 Tor 客户端。如果您使用 Tor 浏览器,它会自动在 127.0.0.1:9150 启动一个 SOCKS 代理 ↗。
如果您从命令行使用 Tor,请创建以下配置文件:
SOCKSPort 9150然后,您可以使用以下命令运行 tor:
tor -f tor.conf此外,如果您使用 Tor 浏览器,可以访问解析器的地址以查看常规的 1.1.1.1 页面:
https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/如果您忘记了 1.1.1.1 的地址,请使用 cURL 检索它:
curl -sI https://tor.cloudflare-dns.com | grep -i alt-svcalt-svc: h2="dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443"; ma=315360000; persist=1并不是所有的 DNS 客户端都支持直接连接到 Tor 网络。socat ↗ 工具通过将本地端口转发到 Tor 代理来弥补这一差距,使任何支持 DNS 的软件都可以连接到隐藏解析器。
隐藏解析器监听 TCP 端口 53 (DNS over TCP) 和端口 853 (DNS over TLS)。设置好 Tor 代理后,以特权用户身份运行以下 socat 命令,根据您所用协议将 PORT 设置为 53 或 853:
PORT=853; socat TCP4-LISTEN:${PORT},reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:${PORT},socksport=9150从此,您可以按照常规指南进行 设置 1.1.1.1,但您应当始终使用 127.0.0.1 代替 1.1.1.1。如果您需要从另一台设备访问此代理,请将 socat 命令中的 127.0.0.1 替换为您的本地 IP 地址。
正如博客文章中所解释的 ↗,首选方法是 DNS over HTTPS (DoH),它在 HTTPS 连接中加密了整个 DNS 查询。要进行设置:
-
按照使用 DNS over HTTPS 客户端连接到 1.1.1.1 的指南下载
cloudflared。 -
启动一个 Tor SOCKS 代理并使用
socat将端口 TCP:443 转发到 localhost:
socat TCP4-LISTEN:443,reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443,socksport=9150- 指示您的计算机将该
.onion地址视为 localhost:
cat << EOF >> /etc/hosts
127.0.0.1 dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion
EOF如果您多次运行此命令,请清除 /etc/hosts 中的重复条目以避免冲突。
- 最后,启动一个本地的 DNS over UDP 守护进程:
cloudflared proxy-dns --upstream "https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"INFO[0000] Adding DNS upstream url="https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Starting DNS over HTTPS proxy server addr="dns://localhost:53"
INFO[0000] Starting metrics server addr="127.0.0.1:35659"