192.168.1.1 是我的路由器 NetGear。它已将 8.8.8.8 和 8.8.4.4 设置为 DNS。从 Windows:
nslookup google.com 192.168.1.1 // works OK
来自Ubuntu:
me@ubuntu:/etc/mail# dig @192.168.1.1 google.com +tcp
;; Connection to 192.168.1.1#53(192.168.1.1) for google.com failed: connection refused.
dig
我认为这不应该在端口 53 上进行,对吗?如果是,将我的 DNS 查询转换为在错误端口上询问 NetGear 的原因是什么?
我无法查询 8.8.8.8:
dig @8.8.8.8 google.com
; <<>> DiG 9.9.2-P2 <<>> @8.8.8.8 google.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
root@ubuntuamd:/etc/mail# dig @8.8.8.8 google.com +tcp
但是可以使用 +tcp:
dig @8.8.8.8 google.com +tcp
; <<>> DiG 9.9.2-P2 <<>> @8.8.8.8 google.com +tcp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59432
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 88 IN A 46.28.247.93
google.com. 88 IN A 46.28.247.119
//etc
;; Query time: 33 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed May 8 00:20:06 2013
;; MSG SIZE rcvd: 295
最后是这个:这里 127.0.1.1(dnsmasq 对吗?)响应:
dig google.com
; <<>> DiG 9.9.2-P2 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34747
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 300 IN A 208.117.224.29
//etc
;; Query time: 3 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed May 8 00:04:44 2013
;; MSG SIZE rcvd: 284
nm 工具:
me@ubuntu:/etc/mail# nm-tool | tail -n 8 IPv4 Settings:
Address: 192.168.1.3
Prefix: 24 (255.255.255.0)
Gateway: 192.168.1.1
DNS: 192.168.1.1
答案1
端口 53 确实是 DNS 服务器监听请求的端口。
但是默认是UDP端口53,而TCP端口53并不常用。
您的dig
和nslookup
命令默认使用 UDP,但在您的dig
命令中您指定使用带有的 TCP +tcp
,并且由于路由器仅在 UDP 上监听,因此请求失败。
要解决该问题,请从命令+tcp
中删除以使用 UDP 进行查询dig
。
答案2
DNS 在端口 53 上运行。
端口 53 是IANA 指定DNS 端口。
dig
进行 DNS 查找。nslookup
进行 DNS 查找。 因此它们都使用端口 53。
至于你的真实的问题是:
那为什么它被拒绝了呢?
嗯,原因可能有很多。也许你的 Ubuntu 计算机位于不同的网络上。也许它的网线被拔掉了。也许你的防火墙规则阻止了除某些特定 IP 地址之外的出站 DNS。
dig
执行此命令您是否想解决特定问题?
答案3
您应该安装 bind 并使用127.0.1.1
。这可能会帮助并解决您的问题。