Почему машины Windows могут разрешать локальные имена, а Linux - нет?

У меня есть небольшая сеть с машинами Windows и Linux, подключенными к маршрутизатору D-Link DIR-825.

Машины Windows в сети могут обращаться ко всем остальным машинам по именам, в то время как машины Linux могут достигать других машин только по IP-адресу.

Я вижу все машины, перечисленные с именами и назначенными им адресами DHCP, в списке состояний клиентов DHCP в интерфейсе веб-администратора маршрутизатора.

Почему машины Linux не могут найти другую машину по имени, в то время как у Windows нет проблем с поиском машин Linux?

5 ответов

Я не эксперт по сети, и я также исследую много ответов в этой теме. Мои текущие выводы:

  • Windows использует имена NetBIOS, и такой протокол, будучи широковещательным, позволяет им находить друг друга без какого-либо центрального сервера.

  • Машины Linux в современных дистрибутивах изначально используют протокол под названием Avahi, который также является независимым от сервера широковещательным протоколом. Локальные сетевые машины имеют суффикс .local, так что вы можете пинговать с Linux на Linux, используяping hostname.localили увидеть их с avahi-discover пакет. некоторые приложения в Gnome используют avahi для вывода списка компьютеров в сети (например, средство просмотра удаленных рабочих столов)

  • Установка SAMBA на компьютере с Linux назначит ему имя NetBIOS (или, что более технически, заставит машину Linux объявить себя в широковещательных запросах со своим именем NetBIOS, которое по умолчанию является их именем хоста), и это позволит компьютерам Windows найти Linux те.

  • Понятно: хотя машины Linux с Samba будут отвечать на запросы протокола NetBIOS, с настройками по умолчанию в таких дистрибутивах, как Ubuntu, он не будет использовать NetBIOS в качестве метода разрешения имен, и именно поэтому машины Linux не могут "видеть" друг друга или Windows машины. Для этого вам нужно отредактировать /etc/nsswitch.conf файл и добавить wins к списку в этой строке:

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • Вам может понадобиться установить winbind (и, если не установлен автоматически, libnss-winbind) пакет для вышеупомянутой работы.

  • Таким образом, для решения проблемы видимости вы либо устанавливаете Samba на все машины Linux (а также редактируете /etc/nsswitch.conf для включения разрешения имен NetBIOS), либо устанавливаете поддержку Avahi на машинах Windows.

  • Что касается общего доступа к файлам, Samba предоставляет возможность совместного использования файлов на машинах Linux с Windows. Нет необходимости редактировать /etc/nsswitch.conf для машин Linux, чтобы видеть общие папки друг друга и Windows (и наоборот) в разделе "Сеть"Nautilus.

Я надеюсь, что это помогло!:D

По умолчанию без DNS-сервера Windows может использовать NetBIOS (протокол разрешения имен Microsoft) для обнаружения имен других систем Windows, локальных для их сети. Как упоминалось выше, похоже, что вам нужно настроить SAMBA (или, по крайней мере, winbind) на стороне Linux. Вот основной набор инструкций:

Чтобы включить разрешение имен netbios в Windows с компьютера Linux, убедитесь, что Samba установлена ​​(хотя служба smb не должна быть запущена). В комплект Samba входит winbind, который позволяет разрешать имена хостов Windows. Затем отредактируйте /etc/nsswitch.conf и измените эту строку:

hosts: files dns

к этому:

hosts: files dns wins

Затем выполните тестирование, выполнив команду ping для имени компьютера с ОС Windows в локальной сети:

$ ping windowsbox

Кстати, это не имеет ничего общего с WINS. WINS - это сервер NetBIOS, который обычно используется в больших сетях для сокращения широковещательного трафика, обеспечения устаревшей платформы централизованного разрешения имен и, в конечном итоге, для того, чтобы системы в разных сетях могли знать сопоставление NetBIOS-имен и IP-адресов друг друга.

Альтернативой SAMBA может быть настройка DNS-сервера и обеспечение настройки динамических обновлений DNS или того, что DHCP может регистрировать записи DNS.

Скорее всего, LLMNR.

Возможно, вам просто нужно настроить разрешение Avahi/mDNS. Это делает то же самое, что LLMNR в Windows.

Linux может разрешать локальные имена, хотя необходимое программное обеспечение не установлено по умолчанию...

Большинство дистрибутивов Linux делают несколько предположений относительно ваших требований к программному обеспечению вне ядра... Справочник Debian DNSMasq

apt-cache search dnsmasq...

Другие вопросы по тегам