我已经使用兹特尼安装了我自己的Zerotier Controller,它工作得很好,但是我的设置中有一部分似乎无法工作,那就是让客户端使用我为ZeroTier网络配置的DNS。DNS配置如下:
{
"domain": "",
"servers": [
"10.10.14.26"
]
}
其中10.10.14.26
是DNS服务器的ZeroTier IP地址(就像Linux服务器运行dnsmasq转发到本地路由器一样)。每当我在ZeroTier客户机上直接测试DNS服务器的响应时,我确实得到了正确的结果(例如,配置我的DNS直接使用它,或者在使用dig
时指定DNS服务器),但是当在客户机上选择“允许DNS配置”时,它们仍然拒绝解析那些在直接询问DNS服务器时确实得到解析的主机名。
我还尝试使用DNS服务器的本地IP地址,而不是ZeroTier IP,结果相同(在同一台Linux服务器上设置IP转发,以便客户机也可以访问本地IP)。
我的备份计划是只为我需要支持的不同平台编写各种脚本,让它们分别在连接和断开连接到我的ZeroTier网络时覆盖和恢复全局DNS,然后使用“允许DNS配置”选项。
我知道DNS特性不适用于Linux客户端,但我将是唯一的Linux客户端,所以这对我来说不是什么大问题。其余的客户端将使用Windows或MacOS,其特性为报告起作用:
ZeroTier管理的DNS目前只支持Windows、MacOS、Android和iOS。Linux支持即将到来,但可能仅限于常见的Linux解析器配置,如Debian和CentOS/RHEL中的配置。
发布于 2021-12-13 08:21:06
虽然这不是我自己问题的正确答案,但它确实解决了我的需要。正如在这个职位中所描述的,我最终通过附加的iptables
命令强制VPN服务器:
iptables -t nat -A PREROUTING -s vpn_network -p udp --dport 53 -j DNAT \
--to-destination your_DNS_server
iptables -t nat -A PREROUTING -s vpn_network -p tcp --dport 53 -j DNAT \
--to-destination your_DNS_server
注意:我测试过的Windows 10机器并没有立即显示正确的结果,但是在重置了大部分的实验更改之后,它确实保持了正常工作。当我在一台干净的机器上测试它时,它立即起作用了。
https://serverfault.com/questions/1085070
复制相似问题