首页 > Windows下 禁用53端口的情况下 如何使用自定义的dns

Windows下 禁用53端口的情况下 如何使用自定义的dns

windows系统 当前网络外网53端口被屏蔽 只能使用局域网内dns服务器

我在远程服务器(centos)上开了dns服务 使用未被屏蔽的端口(比如 8080)
服务器上用dig测试 可以正常返回结果

~ » dig @<远程服务器ip>  index.docker.io -p8080
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> <远程服务器ip>index.docker.io -p25
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20376
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;index.docker.io.       IN  A

;; ANSWER SECTION:
index.docker.io.    29  IN  A   162.242.195.84

;; AUTHORITY SECTION:
.           19992   IN  NS  e.root-servers.net.
.           19992   IN  NS  c.root-servers.net.
.           19992   IN  NS  j.root-servers.net.
.           19992   IN  NS  g.root-servers.net.
.           19992   IN  NS  b.root-servers.net.
.           19992   IN  NS  l.root-servers.net.
.           19992   IN  NS  f.root-servers.net.
.           19992   IN  NS  m.root-servers.net.
.           19992   IN  NS  k.root-servers.net.
.           19992   IN  NS  h.root-servers.net.
.           19992   IN  NS  a.root-servers.net.
.           19992   IN  NS  i.root-servers.net.
.           19992   IN  NS  d.root-servers.net.

;; Query time: 360 msec
;; SERVER: <远程服务器ip>#8080(@<远程服务器ip>)
;; WHEN: Fri Feb 27 02:46:33 UTC 2015
;; MSG SIZE  rcvd: 271

本地使用 netsh 命令将 本地53端口请求转发至 服务器的8080端口
netsh interface portproxy add v4tov4 listenport=53 listenaddress=127.0.0.1 connectport=8080 connectaddress=<远程服务器ip>

本地dns设置为 127.0.0.1
使用telnet 127.0.0.1 53 命令测试可以连通

但是域名解析失败

$ dig @127.0.0.1 index.docker.io -p53

; <<>> DiG 9.10.1-P2 <<>> @127.0.0.1 index.docker.io -p53
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
C:\>nslookup index.docker.io 127.0.0.1
Server:  UnKnown
Address:  127.0.0.1

*** UnKnown can't find index.docker.io: No response from server

请问这种问题如何解决 或者 有没有其他方法在外网53端口禁用的情况下 使用自定义的dns服务


原因和解决方法

最后本地用 Tcp-DNS-proxy 通过tcp请求dns


telnet通是tcp通,dns默认是跑在udp上的

不太熟悉netsh,查查是不是只开tcp没开udp吧


你可以用代理啊,DNS解析会在代理服务器上做。
如果觉得做代理不方便,你可以用V◎P◎N……

说多了会不会因为敏感词被封?


unbound使用tcp转发到远端
或者开启一个ssh隧道转发也可以实现 隐蔽性更高一些

【热门文章】
【热门文章】