我遇到了以下问题:
如果我 ping 一个不存在的域名,我会收到来自 IP 地址的回复
# ping nosuchdomain.common PING nosuchdomain.common.myrealdomain.com (192.168.1.1) 56(84) bytes of data. 64 bytes from myrealdomain.com (192.168.1.1): icmp_req=1 ttl=59 time=0.184 ms
无论如何,我希望发生的是让解析器像这样工作
#ping nosuchdomain.common ping: unknown host nosuchdomain.common
我的 /etc/resolv.conf 现在看起来像这样:
# nameserver config nameserver 8.8.8.8
知道我应该去哪里让解析器返回“未知主机”吗?
答案1
通常,您应该以点结尾域名,如果不这样做,您的解析器将尝试从您的网络配置中附加搜索域(例如来自 DHCP)
你的例子nosuchdomain.common
应该写成nosuchdomain.common.
要找出设置搜索域的原因,您可以使用静态 IP 并设置不同的 DNS 服务器,这样您就不应该获得搜索域。您应该检查 /etc/network/interfaces 配置中的搜索域参数:
#/etc/network/interfaces
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
dns-search myrealdomain.com
答案2
感谢大家的建议,我无意中找到了解决问题的方法,那就是在 /etc/resolv.conf 中明确添加此行。
search .com
一旦我这样做,它就开始按预期工作。
我猜解析器有一个默认的search
域,它是定义的域,/etc/hostname
它会将无法直接解析的任何域添加到该域中。
而且由于我为这个域配置了通配符,这解释了为什么虚构的域被解析到某个 IP。