当我拼错域名时,我的 ISP 提供商的 DNS 服务器会将域名解析为 Web 服务器的 IP 地址,并告诉您“很抱歉,您输入的地址不存在”以及一些广告。
例如:
$ dig abcdefghijklmo.com # using the DNS from my ISP
...
;; ANSWER SECTION:
abcdefghijklmo.com. 0 IN A 31.199.53.9
...
$ dig abcdefghijklmo.com @8.8.8.8 # using Google's DNS
... no "ANSWER SECTION" ...
如您所见,我得到的是无用的 A 记录,而不是空答案。我想删除该记录。
从我的电脑上我可以看到 DNS 服务器是192.168.1.1
,这是我的路由器的地址。我可以从 更改为192.168.1.1
,8.8.8.8
但我将失去在 LAN 内解析名称的能力,所以这不是一个选择。我的路由器无法以任何方式配置,我无法更改它,而且我不想在其他设备上运行名称服务器。我联系了我的 ISP,他们明确表示不会帮助我。
总结:我必须使用192.168.1.1
作为名称服务器,但我想过滤掉包含 的答案A 31.199.53.9
。我该怎么做?
我正在使用带有 NetworkManager 和 dnsmasq 的 Ubuntu Desktop 15.04。
答案1
解决方案是使用/etc/hosts
Ubuntu 上的入口。
- 确保
/etc/nsswitch.conf
在线dns
第一个选项是files
。 - 添加行
/etc/hosts
:
abcdefghijklmo.com ip 地址