我最近设置了一个核心DNS服务器位于我的“本地” tailscale VPN 网络上。Chrome、、dig
和nslookup
其他所有内容都可以在查询正确的 DNS 服务器时正常工作(我已使用 wireshark 仔细检查过),但出于某种原因,Firefox 查询的127.0.0.1
不是 DNS 服务器的 IP(我们称之为1.2.3.4
)。
我正在使用带有 Gnome 的 Ubuntu 22.04,并且安装了resolvconf.service
以下/etc/resolvconf/resolv.conf.d/resolv.conf
内容:
nameserver 1.2.3.4
nameserver 1.1.1.1
到目前为止我已经尝试过:
- 禁用 DoH
- 清除 Firefox 的 DNS 缓存
- 更新并重新安装 Firefox
我不太清楚为什么:
- Firefox 查询 127.0.0.1,而其他工具查询
1.2.3.4
- 即使查询
127.0.0.1
,为什么systemd-resolved
不将查询重定向/指向1.2.3.4
答案1
总结
你必须在你的/etc/systemd/resolved.conf
(1.2.3.4
你自己的 DNS 服务器在哪里,以及1.1.1.1
作为后备)上有这些行
[Resolve]
DNS=1.2.3.4 1.1.1.1
DNSStubListener=yes
DNSStubListenerExtra=udp:127.0.0.1:53
解释
Firefox(至少现在)查询127.0.0.1:53
而systemd-resolved
监听127.0.0.53:53
。DNSStubListenerExtra
上述配置文件中的行systemd-resolved
也将监听127.0.0.1:53
。
您还可以使用iptables
重定向127.0.0.1:53
到127.0.0.53:53
:
sudo iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.53:53