ISP 阻止了替代 DNS?

ISP 阻止了替代 DNS?

我遇到一个问题,我似乎无法设置 ISP 希望我使用的 DNS 以外的其他 DNS。我尝试了几个选项,包括 pi-hole,只需在路由器或设备上将 DNS 设置为任何公共可用选项,如 1.1.1.1 或 9.9.9.9 或 8.8.8.8。设备无关紧要。结果总是一样的,当我从 ISP DNS 更改时,DNS 无法解析。

一个潜在的麻烦是,我的 ISP 在我家安装了一个 mikrotik 设备,但我无法访问它。我在它后面安装了我自己的华硕路由器,我的所有设备都连接到它。我可以通过插入 LAN 电缆来使用 Mikrotik,我也试过了,但 DNS 问题仍然存在。

例如,我的 ISP 是否可以阻止端口 53,除非将其路由到他们自己的 DNS 服务器?或者也许它甚至安装在我家里的 Mikrotik 上。我可以 ping 前面提到的 DNS 服务器,甚至可以 telnet 到 8.8.8.8 TCP 端口 53。(但我相信 DNS 是基于 UDP 的?)

除了使用 VPN 之外,还有什么办法可以解决这个问题吗?我能以某种方式将 DNS 请求重定向到其他端口吗?或者也许获得不使用端口 53 进行 DNS 通信的付费(或免费?)服务?非常欢迎任何意见或进一步的故障排除建议。我的 ISP 响应不及时,所以到目前为止询问他们没有结果。

答案1

除非将端口路由到他们自己的 DNS 服务器,否则我的 ISP 是否可以阻止端口 53?

是的。这只是一个基本的防火墙规则,可以在 Mikrotik 路由器上或更高级别的中央防火墙上。一般来说,如果可以使用防火墙阻止某些数据包,那么您的 ISP 也可以这样做。

如果他们愿意,他们也可以轻松地重定向将发往端口 53 的数据包发送到自己的 DNS 服务器,无论这些数据包应该去往何处,其方式与路由器重定向数据包上的“端口转发”(DNAT) 规则相同。

除了使用 VPN 之外,还有什么办法可以解决这个问题吗?我可以通过某种方式将 DNS 请求重定向到其他端口吗?

使用 DoT,又名“DNS over TLS”,它通过端口 853 运行。(如果也被阻止,请使用 DoH – “DNS over HTTPS” – 它使用端口 443,与常规 HTTPS 完全相同。它们在安全性或隐私性方面完全相同,只是技术因素有所不同。)

一些系统 DNS 解析器(Windows 和 systemd-resolved)甚至 Web 浏览器(Firefox)现在都内置了对 DoT 和/或 DoH 服务器的支持。在其他情况下,您可以使用本地代理;例如,Pi-Hole 很可能允许您为“上游 DNS 服务器”启用 DoT。

您提到的所有三个公共 DNS 服务器都已支持 DoTDoH(请参阅文档1.1.1.1, 为了8.8.8.8, 为了9.9.9.9);还有其他公共提供商也支持这些协议(例如DNS服务器或者转变)。

由于 DoH 和 DoT 都使用 TLS,它们还有一个优势,即您的 ISP 无法在您不注意的情况下拦截或重定向它们,但请务必检查 DNS 服务的文档以找出它建议您使用的 DoT“主机名”或 DoH“URL 模板”——您的 DoT 客户端将需要主机名进行 TLS 证书验证。

(在某个 VPS 上设置自己的 DNS 解析器服务器也是一个选择——它可以让您使用常规 DNS 的备用端口,以及拥有自己的 DNS over TLS 和/或 HTTPS 服务。由于解析器只是一个缓存,而不是数据库,因此资源要求很小。

最后,可以使用 VPN只是对于 DNS 流量,虽然工作量更大(而且不是使用常规商业 VPN 应用程序可以做到的),但如果您要运行自己的应用程序,这是可行的。)

答案2

验证您的 ISP 是否阻止备用 DNS 服务器非常简单。

在 Windows 上运行:

nslookup -debug -type=TXT test.dns.google.com. dns.google.
nslookup -debug -type=TXT -vc locations.dns.google.com. dns.google.

在 macOS 或 Linux 上运行:

dig -t TXT test.dns.google.com. '@dns.google.'
dig -t TXT +tcp locations.dns.google.com. '@dns.google.'

如果第一个命令的输出显示“感谢使用 Google 公共 DNS。”,则您的 UDP 查询正在到达 Google 公共 DNS;如果第二个命令的输出包含 locations.publicdns.goog。您的 TCP 查询也正在到达 Google。

如果输出显示 NXDOMAIN,则表示您正在访问另一个 DNS 解析器。如果输出显示超时,则表示对 Google Public DNS 的 DNS 查询被阻止。使用以下部分中的 UDP 或 DNS traceroute 命令查看可能发生劫持或阻止的位置。

来源 :Google 故障排除

您还可以在文章中找到有关使用 DoH 绕过此类做法的有用信息和说明 什么是加密 DNS 流量?

(我注意到,在民主国家,做出此类行为的 ISP 是不可接受的。)

相关内容