У меня есть небольшая офисная сеть с несколькими машинами Windows / Ubuntu разных выпусков. Несколько дней назад одна машина с Windows потеряла возможность доступа к любым службам на машинах Ubuntu по имени хоста.
я жестяная банка разрешить имя хоста Ubuntu с помощью DNS:
C:\>nslookup gruit
Server: router.asus.com
Address: 192.168.73.1
Name: gruit
Address: 192.168.73.152
Но я не может использовать такие вещи, как ping
, ftp
, ssh
и т.д. по имени хоста. Например:
C:\>ping gruit
Ping request could not find host gruit. Please check the name and try again.
я жестяная банка успешно использовать IP-адрес с любой из этих команд:
C:\>ping 192.168.73.152
Pinging 192.168.73.152 with 32 bytes of data:
Reply from 192.168.73.152: bytes=32 time<1ms TTL=64
я жестяная банка также используйте имя хоста с .
в конце:
C:\>ping gruit.
Pinging gruit [192.168.73.152] with 32 bytes of data:
Reply from 192.168.73.152: bytes=32 time<1ms TTL=64
Это попахивает проблемой NetBIOS. Действительно, такие вещи, как NET VIEW
потерпеть поражение:
C:\>net view \\gruit
System error 53 has occurred.
The network path was not found.
Интересно, однако, что NBT разрешает имя хоста должным образом:
C:\>nbtstat -c
Ethernet0:
Node IpAddress: [192.168.73.104] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
------------------------------------------------------------
GRUIT <20> UNIQUE 192.168.73.152 592
В практических целях меня не интересуют NetBIOS / Samba / и т. Д. на Ubuntu здесь; Я просто хочу, чтобы мой "нормальный" TCP / IP работал (а именно Postgres). Но каким-то образом каждый клиент на этом компьютере с Windows 10, похоже, использует NetBIOS. Если я очищу кеш с помощью nbtstat -R
, например, затем используйте какой-нибудь TCP / IP-клиент (например, ssh
, psql
...), кеш NBT сразу же снова показывает имя хоста Ubuntu и IP-адрес.
[EDIT: некоторые команды не запускают запись в кеш NBT. nslookup
никогда не делает. Как и обычные преступники (например, ping
), когда я заканчиваю имя хоста точкой.]
Настоящая проблема, конечно, в том, что, несмотря на успешное решение с помощью обе DNS и NBT, я не могу использовать имена хостов с какими-либо клиентскими приложениями. Я прочитал много противоречивых страниц документации, блогов и сообщений на форумах о порядке разрешения имен в Windows и о том, играет ли клиент роль в определении метода разрешения. Я не уверен, что правильно / актуально.
[nslookup
поведение в предыдущем редактировании предполагает, что клиент делает играют роль в выборе метода разрешения имен. Не уверен, явное это или случайное - например, какую из нескольких функций API они вызывают.]
Для контекста:
hosts
или lmhosts
файлЛюбые идеи?
Подобная ошибка случилась со мной в прошлом, это была ошибка повреждения базы данных WINS / NBT, в то время как DNS разрешился правильно.
Перезапустил главный сервер браузера, и это помогло мне.
Wirehark, вероятно, определит виновника, который отвечает на неверные данные на запрос NBT вашего Windows 10.