Thunar не видит сеть windows

Обновлено: 05.07.2024

Вы, наверное, не раз сталкивались с проблемой, что Ubuntu не видит сеть Windows или Windows не видит сетевую шару Linux. Такая проблема характерна для многих дистрибутивов с окружением Gnome. Ситуация довольно неоднозначная, раньше причиной этому был баг в GVFS, потом появилось ещё несколько осложняющих дело факторов.

В этой статье мы рассмотрим что делать если Ubuntu не видит шары Windows или Samba, как к ним всё таки подключится и можно ли решить проблему, сделать так чтобы Nautilus и Dolphin начали всё таки видеть сетевые ресурсы.

Почему Ubuntu не видит сеть Windows или Samba?

Нужно разобраться почему Ubuntu не может увидеть сеть Windows. Начиная с Windows 10 в компании Microsoft решили отказаться от старого протокола SMB1 и использовать только SMB2 и SMB3. Но в этих протоколах нет сетевого обнаружения. Для сетевого обнаружения в Windows теперь используется новый сервис WS-Discovery. В Nautilus для отображения сетевых ресурсов используется либо avahi либо протокол SMB1. Поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре. Windows по умолчанию шары Samba тоже видеть не будет, потому что новый WS-Discovery в Samba не поддерживается. Ещё в 2015 году были предложены патчи для Samba добавляющие эту функциональность, но разработчики решили, что оно им не нужно. Поэтому если вы хотите чтобы Windows видела Samba, нужно отдельно установить сервис WSDD.

Но это ещё не всё. Начиная с версии Samba 4.11 разработчики решили, что они ничем не хуже Microsoft и отключили по умолчанию поддержку протокола SMB1. Теперь Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решается проблема либо установкой на Samba сервер Avahi, либо включением поддержки старого протокола SMB1 на сервере Samba.

Настойка сервера Samba

1. Включение протокола SMB1

Для того чтобы активировать протокол SMB1 в Samba необходимо добавить такие строчки в /etc/samba/smb.conf в секцию global:

sudo vi /etc/samba/smb.conf

server min protocol = NT1
client min protocol = NT1
min protocol = NT1

После этого надо перезапустить Samba.

sudo systemctl restart smbd
sudo systemctl restart nmbd

Хочу обратить ваше внимание, что у меня всё заработало только после того как я перезагрузил и сервер и клиент. Видимо что-то где-то кэшируется.

2. Настройка имени хоста

Имя хоста вашего компьютера, выводимое командой hostname должно совпадать со значением в файле /etc/hosts и со значением параметра netbios name в файле /etc/samba/smb.conf. Например:

Регистр букв не имеет значения.

3. Установка Avahi

Если предыдущий способ не поможет, то установка Avahi должна помочь. Samba не будет отображаться в сетях Windows, но зато появится в сетевом окружении в Nautilus. Для установки Avahi выполните:

sudo apt install avahi-daemon avahi-utils

После этого сервис стоит запустить и добавить в автозагрузку:

sudo systemctl enable avahi-daemon

sudo systemctl start avahi-daemon

Проверить доступные сервисы можно командой:

Среди них должна быть ваша шара, обозначенная как Microsoft Windows Network local.

4. Установка WSDD

Сервис WSDD нужен для того чтобы вашу шару было видно из Windows. Можно использовать сервис wsdd2 из этого репозитория. Его надо собрать из исходников, но в этом нет ничего сложного. Сначала склонируйте репозиторий:

Затем перейдите в папку с проектом:

Выполните make для сборки:

Затем установите программу, она только скопирует исполняемый файл и службу systemd в нужные директории:

sudo make install

Осталось запустить службу:

sudo systemctl daemon-reload

sudo systemctl enable --now wsdd2

Теперь Windows сможет видеть ваш сервер Samba. Таким образом если всё сделать правильно, то все всех будут видеть.

Настройка Windows

1. Общий доступ в Windows

Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:


Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.


После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:


После этого вы сможете получить доступ к общим ресурсам этого компьютера.

2. Включение SMB1 в Windows

Для того чтобы включить поддержку протокола SMB1 в Windows 10 откройте поиск и наберите Включение компонентов. Затем откройте утилиту Включение и выключение компонентов Windows:


Дальше найдите пункт SMB1.0 CIFS File Sharing Support и установите напротив него галочку:


Затем необходимо перезапустить компьютер:


После этого Ubuntu начнёт видеть вашу шару Windows и вы сможете к ней подключится.

Настройка клиента

1. Установить Samba

Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:

sudo apt install samba

Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:


2. Рабочая группа

По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:

sudo vi /etc/samba/smb.conf


3. Версия протокола

В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:

client max protocol = NT1


После этого сохраните изменения и перезагрузите компьютер и проверьте.

4. Правильный порядок разрешения имён

name resolve order = bcast lmhosts host wins


5. Не тот интерфейс

Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:


Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:

interfaces = 127.0.0.0/8 enp0s8


После этого надо перезапустить службы Samba:

sudo systemctl restart smbd
sudo systemctl restart nmbd

6. Отладка

Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:

pkill gvfs; pkill nautilus

GVFS_DEBUG=all GVFS_SMB_DEBUG=10 $(find /usr/lib* -name gvfsd 2>/dev/null) --replace 2>&1 | tee gvfsd.log

7. Проблема в GVFS

Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.

8. Подключение напрямую

Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:

После этого система предложит ввести имя пользователя и пароль для доступа к общему ресурсу. Этот пользователь должен реально существовать на машине, к которой вы собираетесь подключится.

Введите пароль и вы увидите доступные общие папки:


Выводы

Если всё будет сделано правильно то Linux увидит вашу шару Windows или Samba:

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Когда я выбираю Browse Network в Тунаре я вижу только UBUNTU-BOX и пустой Windows Network папка. Если я войду smb://WINDOWS-BOX/users , после ввода имени пользователя и пароля, я могу просматривать его без проблем.

Как просматривать компьютеры / общие ресурсы в Thunar, не зная заранее их адреса?

2 ответа

Если рассматриваемой ОС является Win7, отредактируйте /etc/samba/smb.conf и прямо под строкой рабочая группа = WORKGROUP добавьте эту:

Если у вас нет файла smb.conf, добавьте следующий пакет:

sudo apt установить smbclient

Можете ли вы "увидеть" окно WIn7 в сети Windows сейчас?

** Если в вашей сети есть машина с Win10, вы столкнетесь с парадоксом. С настройкой NT1 вы "увидите" его, но не сможете подключиться к нему, потому что Win10 отключил NT1 (он же SMB1). Если у вас нет настройки NT1, вы не сможете увидеть машину с Win10, но сможете получить к ней доступ, как вы это делали выше (smb: // win10).

** Во всей сети Linux или в одной с macOS все они будут видимы (или их легко можно будет сделать видимыми) и доступны независимо от настроек протокола max клиента, поскольку им не нужно использовать netbios для обнаружения хоста.

Найдите его один раз, щелкните правой кнопкой мыши, создайте ярлык, и он появится на левой панели Thunar.

Добавьте общие ресурсы, которые вы регулярно используете, в fstab, чтобы они автоматически монтировались, как функция подключенных дисков Windows. В последних дистрибутивах вы будете использовать SMBv3 более эффективным и гораздо более безопасным способом.

Это позволяет избежать принудительного использования старого, небезопасного и давно устаревшего протокола "NT1", также известного как SMBv1. Может ли кто-нибудь сказать "WannaCry"? С этим связано множество других проблем, поэтому Win 10 активно продвигается к полному удалению, теперь она автоматически удаляется, если не используется в течение первых 15 дней после установки, и я предвижу, что через несколько обновлений функций ее просто не будет. совсем.

В этот момент широко распространенный плохой совет по настройке протокола client max, к счастью, перестанет работать

Поместите пост-это на край вашего монитора с деталями машины. Резервируйте IP-адреса в DHCP или используйте фиксированные адреса и заполняйте файлы хостов, если это необходимо.

Когда я выбираю Browse Network в Thunar я только вижу UBUNTU-BOX и пустое Windows Network папка. Если я вхожу smb://WINDOWS-BOX/users , после ввода имени пользователя и пароля я могу просмотреть его без проблем.

Как я просматриваю компьютеры/доли из Thunar, не зная их адреса заранее?

2 ответа

Если рассматриваемая ОС является редактированием Win7/etc/samba/smb.conf и прямо под рабочей группой =, строка РАБОЧЕЙ ГРУППЫ добавляет этого:

Если у Вас нет smb.conf файла, добавляет следующий пакет:

sudo способная установка smbclient

Можно ли "видеть" поле WIn7 в соответствии с Windows Network теперь?

** Если у Вас будет машина Win10 в Вашей сети, то Вы испытаете парадокс. С установкой NT1 Вы будете "видеть" его, но будете не мочь соединиться с ним, потому что Win10 отключил NT1 (иначе SMB1). Если у Вас не будет установки NT1, то Вы не сможете видеть машину Win10, но сможете получить доступ к ней как Вы, сделал выше (smb://win10).

** Во всей сети Linux или один с macOS все они будут видимы (или может легко быть сделан видимым), и доступный независимо от клиента макс. установка протокола, потому что они не должны использовать netbios для исследования хоста.

Найдите его однажды, щелкните правой кнопкой, создайте ярлык, это затем появится в левой панели в Thunar.

Добавьте доли, которые Вы регулярно используете для fstab, таким образом, они автосмонтированы немного как функция сетевых дисков Windows. С недавними дистрибутивами Вы будете использовать SMBv3 тот путь, который более эффективен и намного более безопасен.

Это старается не вызывать использование старого, небезопасного и длинного протокола "NT1" устаревшего иначе. SMBv1 кто-либо может сказать "WannaCry"? Существует много других проблем с ним, которое является, почему Win 10 борется к полному удалению, это теперь автоудалено, если не используемый за первые 15 дней отправляют установку, я предвижу в несколько времен обновлений функции это плоскость, не являющаяся там вообще.

В которой точке широко отправленный плохой совет установить клиент макс. протокол к счастью прекратит работать.

Поместите постэто на край Вашего монитора с деталями машины. Зарезервируйте IP-адреса в DHCP или используйте зафиксированные адреса и заполните Ваши файлы hosts, если Вы имеете к.

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

[Tags|*nix, opensource]

Предварительные замечания:
Протокол — smb.
Файловая система — cifs.

У меня сейчас:
xfce-base/thunar-1.6.3

Сказка:
В приказчике файлов XFce не собственной реализации функций монтирования. Для решения этой задачи используется gnome-base/gvfs (у меня здесь и сейчас gnome-base/gvfs-1.18.3-r1).

Проверка системы на поддержку необходимой функции/в случае необходимости — реконфигурирование в Gentoo GNU/Linux производится не просто, а очень просто.
Достаточно проверить состояние (при необходимости включить) флаг samba (внезапно?) для пакета gnome-base/gvfs (после реконфигурации также потребуется перезапустить пользовательского демона).

Собственно, на этом всё.
Единственное, вместо привычного вендопользователям формата адреса \\IIS_server\ надо писать smb://IIS_server/

При подключении (курсор в поле ввода помещается мышью или комбинацией Ctrl-L) Thunar попросит ввести имя пользователя (по умолчанию подставляется значение переменной окружения USER, домен (куда вероятно подпадает и рабочая группа и пароль).
И также при каждом переподключении, что неудобно.
Поэтому разделы, которые предполагается монтировать если не постоянно, то регулярно, следует прописать в /etc/fstab. Этот аспект пока подробно не рассматриваю, но полагаю к нему ещё вернуться.
Строго говоря, та же проблема (с сохранением/подстановкой учётных данных) наблюдается и для прочих протоколов (ftp, sftp…).

Замечание об адресации:
По умолчанию, самая распространённая ОС в качестве сетевого имени компьютера исторически использовала локально задаваемую строку (с сетевым представлением в формате NETBIOS, но вроде бы в последнее время наблюдается тенденция к уходу от этой технологии).
В фрюниксах (и соответственно — samba) традиционно используются «взрослые» технологии, в данном случае — DNS.
То есть в строке адреса:
smb://IIS_server/
Предполагается разворачивание имени на основании /etc/hosts до
smb://IIS_server.domain.tld/
И что базовое имя (IIS_server) известно используемому DNS-серверу или на худой конец прописано в hosts.

ЗЫ: В процессе экспериментов ни один Window$-сервер не пострадал, за сервера всегда работала samba.

Читайте также: