跳转到内容
搜索文档

基于 Tor 的 DNS

最后更新 查看 MarkdownAgent 设置

当您发送标准 DNS 查询时,您的 ISP 和 DNS 解析器都可以看到您的 IP 地址和您查询的域名。Cloudflare 的 Tor onion 服务将您的 DNS 查询路由过 Tor 网络,这比直接进行请求确保了高得多的匿名性。解析器永远看不到您的 IP 地址,您的 ISP 也无法确定您尝试解析了哪个域名。

这篇博客文章中阅读关于此服务的更多信息。

设置 Tor 客户端

与直接将流量发送到 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-svc
alt-svc: h2="dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443"; ma=315360000; persist=1

使用 socat 设置本地 DNS 代理

并不是所有的 DNS 客户端都支持直接连接到 Tor 网络。socat 工具通过将本地端口转发到 Tor 代理来弥补这一差距,使任何支持 DNS 的软件都可以连接到隐藏解析器。

DNS over TCP, TLS, and HTTPS

隐藏解析器监听 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

正如博客文章中所解释的,首选方法是 DNS over HTTPS (DoH),它在 HTTPS 连接中加密了整个 DNS 查询。要进行设置:

  1. 按照使用 DNS over HTTPS 客户端连接到 1.1.1.1 的指南下载 cloudflared

  2. 启动一个 Tor SOCKS 代理并使用 socat 将端口 TCP:443 转发到 localhost:

socat TCP4-LISTEN:443,reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443,socksport=9150
  1. 指示您的计算机将该 .onion 地址视为 localhost:
cat << EOF >> /etc/hosts
127.0.0.1 dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion
EOF

如果您多次运行此命令,请清除 /etc/hosts 中的重复条目以避免冲突。

  1. 最后,启动一个本地的 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"

这篇文档对您有帮助吗?