没有尾随点,本地主机名不起作用

dan*_*dan 4 networking router dns dd-wrt dnsmasq

当我在 Android 手机上使用某些 LAN 扫描工具时,我注意到所有本地主机名的末尾都有一个尾随点。没有它,我无法从我的 Windows 桌面获得 ping 的工作(它在我的 Linux 虚拟机上运行良好):

C:\Users\dnll>ping router
Ping request could not find host router. Please check the name and try again.

C:\Users\dnll>ping router.

Pinging router [192.168.1.1] with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
Run Code Online (Sandbox Code Playgroud)

这在尝试访问我的路由器 Web UI 时更加明显,因为我需要输入,http://router./因为http://router/它不起作用。我正在使用启用了 dnsmasq 的 DD-WRT,不确定这是否可能是问题所在。我希望主机名可以在没有 Windows PC 上的点的情况下访问。

dnsmasq 设置

我尝试禁用本地 DNS,但没有取得多大成功。

这是ipconfig /all我的桌面:

C:\Users\dnll>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : desktop
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) Ethernet Connection (5) I219-V
   Physical Address. . . . . . . . . : 70-4D-7B-67-7C-FD
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.1.205(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : December 12, 2018 18:11:50
   Lease Expires . . . . . . . . . . : December 17, 2018 00:21:37
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DNS Servers . . . . . . . . . . . : 192.168.1.1
   NetBIOS over Tcpip. . . . . . . . : Enabled
Run Code Online (Sandbox Code Playgroud)

我所知道的 Windows 配置并没有什么特别之处。我没有使用域,至少不是我所知道的(为了确定,我尝试了 pingrouter.localrouter.mydomain失败)。

怎么了?

har*_*ymc 5

需要末尾的点来强制进行 DNS 查找。如果没有它,Windows 可能会首先尝试其他方法,例如 NETBIOS 或hosts文件,如果存在点,它将不会尝试。当你加点时,你是说主机名是完全限定的,否则它会添加你的 DNS 后缀。最后的“点”总是隐含在 DNS 中,即使它没有被指定。

来自 DD-WRT 论坛文章 无法解析主机名但可以解析主机名。(带有 . )

这是典型的 DNS 行为。

“尾随点”表示完全限定的域名 (FQDN)。如果没有点,您尝试 ping 的名称是不明确的(有几种可能的含义或解释)。

您可以通过在路由器中指定(例如)“本地”的 LAN 域来帮助防止使用尾随点。然后在客户端上释放/更新 DHCP。

ping stan.local

ping stan
Run Code Online (Sandbox Code Playgroud)

因此,如果您的路由器的主机名是router.local.,并且您的 DNS 解析器的搜索路径是local,那么在查找router DNS 客户端时,会自动附加.local.,然后成功解析地址。

  • 除了请不要使用 `.local`,它是为多播 DNS 保留的。理想情况下,您将使用您实际拥有的域。 (6认同)