![如果没有尾随点,本地主机名将不起作用](https://linux22.com/image/1577113/%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E5%B0%BE%E9%9A%8F%E7%82%B9%EF%BC%8C%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%B0%86%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
当我在 Android 手机上使用某些 LAN 扫描工具时,我注意到所有本地主机名末尾都有一个点。如果没有它,我无法从 Windows 桌面进行 ping 操作(在我的 Linux VM 上可以正常进行):
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
当我尝试访问我的路由器 Web UI 时,这一点更加明显,因为我需要输入,http://router./
否则将http://router/
无法工作。我使用的是启用了 dnsmasq 的 DD-WRT,不确定这是否是问题所在。我希望主机名可以在没有点的情况下从我的 Windows PC 访问。
我尝试禁用本地 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
据我所知,我的 Windows 配置并没有什么特别之处。我没有使用域,至少据我所知没有使用域(为了确保万无一失,我尝试过 pingrouter.local
或没有成功)。router.mydomain
怎么了?
答案1
末尾的点是强制 DNS 查找所必需的。如果没有它,Windows 可能会首先尝试其他方法,例如 NETBIOS 或文件hosts
,如果存在点,它将不会尝试这些方法。当您放置一个点时,您表示主机名是完全合格的,否则它将添加您的 DNS 后缀。即使未指定,最后的“点”也始终隐含在 DNS 中。
来自 DD-WRT 论坛文章 无法解析主机名但可以解析主机名。(带有 . ):
这是典型的 DNS 行为。
“尾随的点”表示完全限定域名 (FQDN)。如果没有点,您尝试 ping 的名称将不明确(具有多种可能的含义或解释)。
您可以通过在路由器中指定 LAN 域(例如)“本地”来帮助防止使用尾随点。然后在客户端上释放/更新 DHCP。
ping stan.local ping stan
因此,如果您的路由器的主机名是router.local.
,并且您的 DNS 解析器的搜索路径是local
,则在执行查找时,router
DNS 客户端将自动附加.local.
然后成功解析地址。