![为什么我的所有 DNS 查询都是从 127.0.0.1 接收的?](https://linux22.com/image/858492/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E6%89%80%E6%9C%89%20DNS%20%E6%9F%A5%E8%AF%A2%E9%83%BD%E6%98%AF%E4%BB%8E%20127.0.0.1%20%E6%8E%A5%E6%94%B6%E7%9A%84%EF%BC%9F.png)
我使用host
Ubuntu 12.04 LTS 上的命令来检查我的 DNS 服务器:
host -a www.amazon.com
显示这个:
Trying "www.amazon.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22892
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.amazon.com. IN ANY
;; ANSWER SECTION:
www.amazon.com. 60 IN SOA ns-942.amazon.com. root.amazon.com. 1405660589 3600 900 7776000 60
www.amazon.com. 7 IN A 72.21.194.212
www.amazon.com. 412 IN NS ns-942.amazon.com.
Received 110 bytes from 127.0.0.1#53 in 176 ms
为什么已从 127.0.0.1 接收?
我尝试过不同的网站,并尝试过此命令,并移至不同的位置。显示的 DNS 服务器始终相同:127.0.0.1。为什么?
答案1
IP 地址 127.0.0.1 表示本地主机,即它指的是您的计算机。DNS 响应来自您的计算机。
该host
程序与系统上的所有其他程序一样,通过查看文件来了解要查询哪个 DNS 服务器/etc/resolv.conf
。
您的计算机发送 DNS 响应的原因是它正在运行 DNS 缓存。DNS 缓存软件会记住请求,因此如果您快速连续多次访问同一站点(例如,显示带有嵌入图像、Javascript、框架等的网页,或显示同一站点的多个页面),只有第一个请求需要等待远程服务器的回复,后续请求会从本地计算机获得非常快速的回复。
Ubuntu 运行域名系统默认情况下作为 DNS 缓存。Dnsmasq 本身会查询 ISP 提供的 DNS 服务器;此配置通常是动态完成的(通过resolvconf
:当相应网络接口启动时,DNS 服务器将被添加到配置中,当接口关闭时,DNS 服务器将被删除。Dnsmasq 可用的 DNS 服务器记录在 中/etc/resolvconf/run/interface/*
。
请注意,我提供文件名仅供好奇。很少有情况下你会想要编辑它们。