Локальное имя хоста не работает без конечной точки
Я заметил, что у всех моих локальных имен хостов есть конечная точка в конце, когда я использую какой-либо инструмент сканирования локальной сети на своем телефоне Android. И без этого я не могу заставить ping работать с моего рабочего стола Windows (он прекрасно работает с моими виртуальными машинами 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
Это более очевидно при попытке доступа к веб-интерфейсу моего маршрутизатора, так как мне нужно войти http://router./
поскольку http://router/
не сработает Я использую DD-WRT с включенным dnsmasq, не уверен, что это может быть проблемой. Я бы предпочел, чтобы имена хостов были доступны без точки на моем ПК с Windows.
Я попытался отключить локальный 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 нет ничего особенного, о чем я знаю. Я не использую домен, по крайней мере, не то, что я знаю (и я попытался пинг до router.local
или же router.mydomain
без успеха, просто чтобы быть уверенным).
В чем дело?
1 ответ
Точка в конце необходима для принудительного поиска DNS. Без этого Windows может попробовать сначала другие методы, такие как NETBIOS или hosts
файл, который он не будет пытаться, если точка присутствует. Когда вы ставите точку, вы говорите, что имя хоста полностью определено, иначе оно добавит ваш DNS-суффикс. Последняя "точка" всегда подразумевается в DNS, даже если она не указана.
Из статьи форума DD-WRT Не удается разрешить имя узла, но можно разрешить имя узла. (с.):
Это типичное поведение DNS.
"Точка" означает полное доменное имя (FQDN). Без точки имя, которое вы пытаетесь пропинговать, неоднозначно (имеет несколько возможных значений или интерпретаций).
Вы можете помочь предотвратить использование конечной точки, указав домен LAN (например) "local" в маршрутизаторе. Затем отпустите / обновите DHCP на клиенте.
ping stan.local ping stan
Так что, если имя хоста вашего маршрутизатора будет router.local.
и ваш преобразователь DNS будет иметь путь поиска local
при поиске router
DNS-клиент автоматически добавит .local.
и затем успешно разрешить адрес.