网络上的客户端不解析本地记录,而是使用外部记录

网络上的客户端不解析本地记录,而是使用外部记录

问题

当尝试使用 NSLookup 通过主机名访问内部服务器时,我收到正确的 DNS 服务器地址、FQDN 和目标 IP 地址。

当我尝试使用客户端或 cURL 访问服务器并在 CMD 中执行 PING 时,它会解析为外部 IP 地址并失败,因为路由器上的防火墙配置设置为阻止来自专用网络的请求。(连接失败)

当我尝试通过浏览器访问服务器时,它会解析为内部 IP 地址(连接成功)

配置

  • 路由器/网关:192.168.178.1
  • 本地 DNS 服务器:192.168.178.7
  • 服务器IP地址:192.168.178.11
  • 客户端计算机 NIC 配置:静态 DNS 服务器 192.168.178.7、192.168.178.1
  • C:\Windows\System32\drivers\etc\hosts:未定义路线

解决方法

  • 編輯C:\Windows...\hosts 文件

图片胜过千言万语

Flushdns + nslookup + curl: 图片1

浏览器开发者模式: 图片2

答案1

您提到了网卡上的两个本地 DNS 服务器

  • 192.168.178.1(路由器/网关)
  • 192.168.178.7(本地 DNS 服务器)

我怀疑您的路由器仅解析外部 DNS,而您的本地 DNS 服务器也具有某种本地区域。

在您的 NIC 上同时使用两个 IP 作为 DNS 服务器的问题在于,操作系统不够智能,无法从逻辑上检查两者。它基本上会反复出现。

  • 一分钟内你的 DNS 会经过你的内部服务器(浏览器)
  • 下一分钟你的 DNS 将通过你的路由器(curl 命令)

要修复此问题,只需从 NIC 中删除路由器/网关 IP。如果您没有静态配置,那么它可能也在您的 DHCP 配置中。

相关内容