我当前的 Debian 安装存在严重问题。大多数程序如 firefox、nslookup、dig 等都忽略/etc/hosts文件中的条目,实际上我使用此文件进行广告拦截。
一个例子
/etc/hosts文件中的一行
127.0.0.1 www.winaproduct.com
Run Code Online (Sandbox Code Playgroud)
当我这样做时,dig +short www.winaproduct.com它返回服务器的相应 IP 地址,而不是127.0.0.1.
www.winaproduct.com在 Firefox 上打开,它显示相应的网站,但这不是预期的。
但有没有问题ping,busybox nslookup,busybox ping,resolveip等。
那么,问题是什么?以及如何修复它?我认为问题出在 DNS 解析库上。
临时修复、设置dnsmasq和更改nameserver为127.0.0.1in /etc/resolv.conf。
更新
安装后问题神奇地解决了libnss3,作为依赖google-chrome
默认 /etc/nsswitch.conf 看起来像 hosts: files dns
如何分辨nslookup,digetc.向/ etc / hosts文件第一,而不是直接问到DNS?
但为什么busybox nslookup,wget,resolveip等的不是工作不同nslookup,dig等等?
mic*_*has 17
nslookup、dig和host是用于查询 DNS 名称服务器的工具。
如果您的配置不是由名称服务器提供(如 中给出的信息/etc/hosts),那么这些工具将不会显示它们,因为它们直接询问名称服务器。
如果您想检查“通常”分辨率是否有效(即 中指定的方式/etc/nsswitch.conf),您可以使用getent:
getent hosts www.winaproduct.com
Run Code Online (Sandbox Code Playgroud)
您可以安装 DNSmasq,它将读取您的 /etc/hosts 条目并将它们导入其 DNS 缓存。然后,您所有的 DNS 工具和 DNS 查询应用程序(例如 dig、host 和 nslookup)都将收到源自 /etc/hosts 文件的答案。
| 归档时间: |
|
| 查看次数: |
15607 次 |
| 最近记录: |