Назад | Перейти на главную страницу

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

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

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

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

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

Я не специалист по сетям, и я МНОГО изучаю ответы в этой теме. Мои текущие выводы:

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

  • Машины Linux в современных дистрибутивах изначально используют протокол, называемый Авахи, который также является независимым от сервера широковещательным протоколом. У компьютеров локальной сети есть суффикс .local, так что вы можете ping из 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. Вот базовый набор инструкций:

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

hosts: files dns

к этому:

hosts: files dns wins

Затем проверьте связь с именем компьютера Windows в локальной сети:

$ ping windowsbox

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

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

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

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

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

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

apt-cache search dnsmasq ...