在Debian系统中,尽管可以使用nslookup来解析名称,但是在浏览器等其他应用中却无法解析名称的问题
由于很入迷,所以记了下来。
结论
让我们修改nsswitch.conf文件!
经过
我們決定為開發需要而設置新的伺服器。
-
- VMware ESXi5.5上にDebian9をインストール
- マシンには「192.168.1.28」のipを固定する
在本地网络中安装了DNS服务器(192.168.1.25),希望优先参考该DNS进行设置。
因此,在/etc/network/interfaces中按照以下方式进行了记录。
iface ens32 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.10
dns-nameservers 192.168.1.25
网络重新启动后使用nslookup进行确认,看起来没问题。
为了确认,可以尝试在浏览器中进行确认。页面加载错误…糟糕。
resolv.conf配置正确,dig和nslookup也都没有问题。这是怎么回事,Debian!
解决
当我在调查/etc/hosts时,发现了关键词”nsswitch.conf”,在【Ubuntu】”sudo: ホストxxxの名前解決ができません”无法解决的文章中。
关于hosts和nsswitch的内容,DNS系备忘录中有一份易于理解的描述。
据说,尽管更改了nsswitch.conf文件,nslookup、host和dig的行为并不会改变。
这个情况难道不是如此吗?
nsswitch.conf 翻译成中文可以是:网络服务开关配置文件
查看/etc/nsswitch.conf的源代码。
...
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
...
在nsswitch中,似乎会按照从左到右的顺序评估所写的元素。以这种描述,如果是files -> mDNS -> NOTFOUND,则返回。这样 DNS 就得不到传递吗…?
我第一次听说mDNS这个词。
使用mDNS的节点将向多播地址(224.0.0.251)的UDP端口5353发送DNS查询,并且如果有相应的设备存在,该节点将返回响应。
听说是这样的。由于疲劳不堪,如果有时间的话,我会仔细调查这个问题。
由于本次不使用mDNS,因此将其改写如下。
...
hosts: files myhostname dns
...
重新启动网络,浏览器上能够正确解析名字了。
虽然解决方法有些模糊不清,但因为起作用了,算了吧。
由于内容变得有些含糊不清,如果有哪里出错了,请指出,我将不胜感激。
文献引用
-
- 【Ubuntu】「sudo: ホストxxxの名前解決ができません」が治らない…
-
- DNS系備忘録
-
- mDNSの謎について
- Linux、「/etc/host.conf」「/etc/nsswitch.conf」とはなんぞや?