Linux networking · 4 min read · Dec 11, 2025
Просмотр сети Windows с вашего компьютера на Linux с автоматическим монтированием и обнаружением всех хостов и общих ресурсов.
Последняя версия доступна по адресу:
http://linux.bononline.nl/linux/automountsmbshares/index.php
Указатель
- Введение и резюме
Введение
В течение некоторого времени я искал хороший способ позволить моему компьютеру обнаруживать сеть Windows и монтировать общие ресурсы по запросу. На данный момент нет достаточно хорошего решения. После того как я попробовал kioslaves в рабочем столе на свой выбор (KDE) и программы FUSE Fusesmb и SmbNetFs, я не был полностью удовлетворен. Должен быть способ позволить моему компьютеру обнаруживать все рабочие группы/домены, хосты и общие ресурсы, и монтировать общий ресурс на хосте по запросу. Некоторые скажут: монтируйте общие ресурсы по своему выбору вручную, и вперед. Но нет!! Это не то, что я хочу. Я могу позволить своему компьютеру автоматически обнаруживать все доступные хосты и общие ресурсы и монтировать общий ресурс только по мере необходимости. Это должно быть возможно! И после попыток я выяснил, что это так!
Следующие вопросы необходимы, на мой взгляд:
автоматическое обнаружение сети SMB (домены, хосты и общие ресурсы)
создание представления, которое имеет смысл для пользователей, вошедших в свою домашнюю директорию
автоматическое монтирование общих ресурсов по запросу
автоматическое размонтирование общих ресурсов после некоторого времени бездействия
использование файловой системы ядра, такой как SMBFS или CIFS
независимость от менеджера рабочего стола
поддержка других сетевых сервисов, таких как SSH и FTP
Программа FUSE Fusesmb очень близка к тому, что я ищу, но ей не хватает расширенных возможностей CIFS, таких как правильное представление разрешений, поддержка inotify, символических ссылок и ATTR/ACL. Мне потребовалось некоторое время, чтобы выяснить, почему у программы FUSE отсутствуют эти функции. FuseSMB основан на библиотеке smbclient smbclient.so, которая является частью пакета Samba и не имеет ничего общего с smbfs или cifs.
Результат
Результатом этой конструкции является сетевой каталог (Глобальная сеть) в вашей домашней директории, где автоматический монтировщик предоставляет просматриваемое дерево для доступа ко всем поддерживаемым сетевым сервисам.
На данный момент он поддерживает сервисы SMB и SSH (я работаю над FTP). Доступ к “сетевой точке монтирования”:
/home/sbon/Global Network/
SSH хосты
Сеть Windows
Доступ к сети Windows (==smb), все рабочие группы и/или домены появляются:
/home/sbon/Global Network/
SSH хосты
Сеть Windows
BONONLINE
CWWERKGROEP
Входя в рабочую группу CWWERKGROEP, все серверы и другие хосты отображаются:
/home/sbon/Global Network/
SSH хосты
Сеть Windows
BONONLINE
CWWERKGROEP
ROUTER
PC1
Входя на сервер ROUTER, общие ресурсы, доступные подключенному пользователю, появляются:
/home/sbon/Global Network/
SSH хосты
Сеть Windows
BONONLINE
CWWERKGROEP
ROUTER
cwdocumenten
public
sbon
При доступе к общему ресурсу он автоматически монтируется (с помощью CIFS или SMBFS). Использование учетных данных поддерживается, вход для гостей является стандартным.
Для создания “карты многомонтирования” для сервиса smb используется сетевой кэш. Он предоставляет информацию о рабочих группах и/или доменах, хостах и доступных серверах и общих ресурсах. Он поддерживается некоторыми скриптами, которые используют некоторые утилиты (nbtscan для определения хостов и рабочих групп/доменов и smbclient для определения общих ресурсов на хосте).
При доступе к хостам SSH (=ssh) все хосты, к которым у этого пользователя есть доступ, появляются:
/home/sbon/Global Network/
SSH хосты
192.168.0.2
Сеть Windows
Здесь не используется кэш для создания этого дерева, но используется файл .known_hosts. Кроме того, не было доступно mount.sshfs. Я создал его, используя FUSE и sshfs. (и umount.sshfs).
Теперь при доступе к хосту 192.168.0.2 корень на 192.168.0.2 монтируется.
Как это работает
Эта конструкция использует автоматический монтировщик. Когда пользователь входит в систему и начинается новая сессия, к файлу auto.master добавляется “сетевой точка монтирования” и демону автоматического монтировщика отправляется сигнал “перезагрузить”. Эта точка монтирования, по умолчанию называемая “Глобальная сеть”, находится в домашней директории пользователя. К ней привязан скрипт (auto.network), который создает карту на основе всех поддерживаемых сетевых сервисов и обнаруженных ресурсов. Вместе с опцией просмотра это предоставляет просматриваемую карту, где общие ресурсы/хосты монтируются при доступе.
Когда пользователь выходит из системы, и таким образом сессия заканчивается, точка монтирования снова удаляется, и демону автоматического монтировщика снова отправляется сигнал перезагрузки, чтобы изменения вступили в силу.
Здесь используется возможность KDM запускать скрипты с привилегиями root в начале и в конце сессии.
На данный момент поддерживаются только SMB и SSH.
Известные проблемы
Существуют некоторые узкие места:
- когда общий ресурс добавляется, хост выходит из сети или что-то еще меняется в среде smb, требуется некоторое время, прежде чем это также станет видимым в кэше. Этот кэш поддерживается через некоторые скрипты, которые работают по механизму “pull”. Во-вторых, автоматический монтировщик не обнаруживает сам по себе, что данные в кэше изменились. Он обновляет только свои собственные данные (мульти монтирование карты) после таймаута, и даже тогда он не полностью получает все изменения.
- автоматический монтировщик настроен на представление просматриваемой карты монтирования. Это означает, что верхние директории всегда доступны. Это очень хорошо, доступные сети всегда видны и доступны пользователю, даже после таймаута. На практике иногда один из “сетевых сервисов” исчезает…
- автоматический монтировщик имеет некоторые проблемы при запуске с пустым файлом auto.master (и пустыми включениями). В момент загрузки, когда ни один пользователь не вошел в систему, и, следовательно, нет управляемых сетевых точек монтирования autofs, автоматический монтировщик должен быть запущен с пустой картой.
Ссылки
Доступ к общим ресурсам Windows или Samba с использованием autofs
руководство по настройке autofs для SMB общих ресурсов, используя существующие файлы;
Интеграция вашего хоста Linux в среду Windows
руководство по настройке autofs для доступа к общим ресурсам альтернативным способом.
HOWTO Автоматическое монтирование файловых систем (AUTOFS) / udev с autofs
Здесь используется почти такая же конструкция для монтирования оборудования с использованием autofs с udev. Здесь также динамически добавляются и удаляются точки монтирования в файл auto.master.
Get new posts in your inbox
No spam. Unsubscribe anytime.