我有一台 OpenWRT 路由器。我在路由器上的文件中添加了一些条目/etc/hosts
,以阻止用户访问某些网站。最近,我将一台计算机升级到 Windows 10,我发现升级后我可以在该计算机上访问被阻止的网站。
我尝试了nslookup
域名,发现在Win10电脑上返回的是实际的IP地址,而/etc/hosts
在其他设备上返回的是定义的IP地址(捕获1)。
因此,我使用 Wireshark 捕获 DNS 查询,以查看 Windows 10 在执行 DNS 查询时实际发生了什么。我发现路由器确实使用 hosts 文件中定义的 IP 地址回复了 DNS 查询(截图 2),但nslookup结果仍然是实际的IP地址。
为了确认问题不是来自路由器本身,我在 hosts 文件中添加了一个不存在的域条目,然后nslookup
再次执行此操作。这次返回了定义的 IP 地址。
我已确认已禁用其他网络接口(即虚拟机桥接接口),主网络接口也设置为仅使用来自 DHCP 的 DNS 服务器,并且未定义辅助 DNS 服务器。此外,在执行 nslookup 之前,我必须ipconfig /flushdns
阻止任何域记录在系统上缓存。
看来 Windows 10 只是忽略了路由器回复的 DNS 查询,并向另一个 DNS 服务器查询域名的实际 IP 地址。是否可以禁用这种行为?或者是否存在导致这种行为的其他问题?
---已编辑---
ipconfig /all
输出如下
Windows IP 配置 主机名......................:Sunny-PC 主 DNS 后缀 . . . . . . . : 节点类型................................:混合 IP 路由已启用。。。。。。。:否 WINS 代理已启用。。。。。。。:否 以太网适配器 以太网: 连接特定的 DNS 后缀 . : 描述....。...。...。...。:Realtek PCIe GBE 系列控制器 物理地址。。。。。。。。。。。:60-A4-4C-2E-4D-8C DHCP 已启用。。。。。。。。。。:是 自动配置已启用。。。:是 IPv4 地址。。。。。。。。。。。。:192.168.1.2(首选) 子网掩码.......................................................................................................................: 255.255.255.0 已获得租约。。。。。。。。。。:2017 年 1 月 28 日 02:03:40 租约到期.... . . . . . . . . . . . : 2017 年 1 月 28 日 14:03:40 默认网关................: 192.168.1.1 DHCP 服务器................: 192.168.1.1 DNS 服务器................: 192.168.1.1 Tcpip 上的 NetBIOS。。。。。。。。:已启用 隧道适配器 isatap。{606D8EC0-C791-4C68-BC6D-B051FFF5FD50}: 媒体状态. . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . : 描述 . . . . . . . . . . . . . . : Microsoft ISATAP 适配器 #2 物理地址。。。。。。。。。。。:00-00-00-00-00-00-00-E0 DHCP 已启用。。。。。。。。。。:否 自动配置已启用。。。:是 隧道适配器 Teredo 隧道伪接口: 连接特定的 DNS 后缀 . : 描述 . . . . . . . . . . . . . : Teredo 隧道伪接口 物理地址。。。。。。。。。。。:00-00-00-00-00-00-00-E0 DHCP 已启用。。。。。。。。。。:否 自动配置已启用。。。:是 IPv6 地址。。。。。。。。。。。。。:2001:0:9d38:6ab8:4cc:142e:2598:228a(首选) 链路本地 IPv6 地址.... .. .: fe80::4cc:142e:2598:228a%22(首选) 默认网关 。 。 。 。 。 。 。 。 。 : :: DHCPv6 IAID。 。 。 。 。 。 。 。 。 。 。地址:167772160 DHCPv6 客户端 DUID。。。。。。。。。:00-01-00-01-1F-12-38-C3-60-A4-4C-2E-4D-8C Tcpip 上的 NetBIOS。。。。。。。。:已禁用
答案1
好的,感谢“安全 DNS“Avast!Antivirus 的功能,我已经浪费了 2 天的时间来解决问题。
我发现我的电脑向路由器发送 DNS 查询时,也会向一个陌生的 IP 地址发送查询。我尝试检查查询内容,但数据包是加密的。所以我对 IP 地址进行了 whois 查询,发现该 IP 地址属于 Avast。
禁用“安全 DNS”功能(Avast 设置 -> 组件)后,DNS 解析过程现在恢复正常。