如果我的 ISP 没有连接到其 DNS 服务器之一,它似乎会阻止端口 53。我能够通过nslookup
测试证明这一点。以下是我的测试:
C:\Users\admin>nslookup google.com
Server: UnKnown
Address: 10.198.220.124
Non-authoritative answer:
Name: google.com
Addresses: 2404:6800:4008:c01::64
120.28.26.34
120.28.26.45
120.28.26.39
120.28.26.50
120.28.26.35
120.28.26.55
120.28.26.59
120.28.26.49
120.28.26.24
120.28.26.20
120.28.26.40
120.28.26.30
120.28.26.29
120.28.26.54
120.28.26.25
120.28.26.44
C:\Users\admin>ping 8.8.8.8
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=1974ms TTL=40
Reply from 8.8.8.8: bytes=32 time=1213ms TTL=40
Reply from 8.8.8.8: bytes=32 time=165ms TTL=40
Reply from 8.8.8.8: bytes=32 time=172ms TTL=40
Ping statistics for 8.8.8.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 165ms, Maximum = 1974ms, Average = 881ms
C:\Users\admin>nslookup google.com 8.8.8.8
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 8.8.8.8
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to UnKnown timed-out
C:\Users\admin>tracert -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 2 ms 2 ms 2 ms 192.168.43.1
2 132 ms 407 ms 139 ms 10.188.8.118
3 111 ms 156 ms 127 ms 10.188.8.117
4 121 ms 136 ms 146 ms 10.163.143.114
5 129 ms 137 ms 139 ms 10.163.143.164
6 141 ms 151 ms 155 ms 10.163.143.164
7 126 ms 137 ms 138 ms 10.163.143.114
8 129 ms 139 ms 138 ms 10.163.143.124
9 133 ms 138 ms 138 ms 10.198.182.117
10 130 ms 137 ms 138 ms 10.198.182.138
11 233 ms 137 ms 137 ms 10.198.183.6
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
16 * * * Request timed out.
17 201 ms 219 ms 179 ms 72.14.223.161
18 * * * Request timed out.
19 * * * Request timed out.
20 * * * Request timed out.
21 * * * Request timed out.
22 148 ms 157 ms 158 ms 8.8.8.8
Trace complete.
我的 ISP 的 DNS 服务器运行缓慢且时断时续。有办法解决这个问题吗?是否可以设置在不同端口上运行的 DNS 服务器?OpenDNS 和 Google Public DNS 等公共 DNS 服务器是否在其他端口上运行这些服务?
答案1
首先,我要声明的是,如果您的 ISP 这样做,那么他们实际上并没有提供真正的互联网连接。ISP 这样做是不合适的。他们应该解决这个问题。
话虽如此,从技术上讲,您可以在 53 以外的端口上使用递归解析器,但这并不简单。无法使用 53 以外的端口配置名称服务器/etc/resolv.conf
,因此您必须使用某种黑客手段(例如 DNAT)将本地 DNS 查询转移到 53 以外的端口。至于服务器,您很难找到一个可以使用且侦听 53 以外端口的服务器。部分原因是客户端对指定 53 以外的端口的支持非常差,以至于没有多少服务器运营商认为提供此功能很有用。
因此:您可以在 ISP 网络之外的某处设置自己的递归解析器,并监听 53 以外的端口,然后使用 DNAT 之类的黑客技术将您的客户端查询发送到该服务器。
答案2
您可以尝试使用“DNSCrypt”。此 DNS 解析器发送加密的 DNS 请求。当 DNSCrypt 无法通过端口 53 执行此操作时,它会使用端口 443。