Как подключиться к сети windows из ubuntu по сети

Вы, наверное, не раз сталкивались с проблемой, что 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. Например:

hostname

cat /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

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

avahi-browse --all

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

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

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

git clone https://github.com/Andy2244/wsdd2.git

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

cd wsdd2

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

make

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

sudo make install

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

sudo systemctl daemon-reload

sudo systemctl enable --now wsdd2

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

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

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

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

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

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

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

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

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

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

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

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

Исходя из выше перечисленного, клиент скорее всего не виноват, но можно попробовать его настроить чтобы быть уверенным точно. Как я уже написал выше Nautilus для подключения и просмотра общих папок Windows и Samba использует виртуальную файловую систему gvfs. А та, в свою очередь использует библиотеку libsmbclient для получения необходимых данных. Поэтому мы можем попытаться исправить ситуацию переопределив некоторые параметры в /etc/samba/smb.conf. Но работает это далеко не всегда.

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

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

sudo apt install samba

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

testparm

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

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

sudo vi /etc/samba/smb.conf

workgroup = WORKGROUP

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

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

client max protocol = NT1

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

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

Неверный порядок разрешения сетевых имен тоже может стать проблемой. Чтобы исправить его найдите в smb.conf параметр и приведите его к такому виду:

name resolve order = bcast lmhosts host wins

Здесь первым используется bcast, широковещательные сообщения, которые рассылаются по вашей локальной сети и ищут компьютеры с общими папками.

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

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

ls /sys/class/net

Затем найдите в /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

Затем откройте Nautils и войдите в сетевое окружение, сеть Windows. При этом в терминале будут выводится сообщения об ошибках работы службы. Вы можете использовать эти сообщения чтобы искать информацию в Google или попросить помощи на форумах.

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

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

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

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

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

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

Выводы

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

В этой статье мы кратко рассмотрели почему Ubuntu не видит сеть Windows, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

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

В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block), который ранее назывался CIFS (Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или Samba.

    Содержание:

  • Смонтировать сетевую папку в Linux с помощью cifs-util
  • Автоматическое монтирование сетевой папки в Linux
  • Linux: подключиться к сетевой папке с помощью клиента samba

Совет. Для доступа к сетевым папкам по SMB/CIFS используется порт TCP/445. Для разрешения имени используются порты UDP 137, 138 и TCP 139. Если эти порты закрыты, вы сможете подключиться к сетевой папке Windows только по IP адресу.

Смонтировать сетевую папку в Linux с помощью cifs-util

Вы можете смонтировать сетевую папку, находящуюся на Windows хосте, с помощью утилит из пакета cifs-util. Для установки пакета выполните команду:

  • В Ubuntu/Debian: $ sudo apt-get install cifs-utils
  • В CentOS/Oracle/RHEL: $ sudo dnf install cifs-utils

Создайте точку монтирования:

$ sudo mkdir /mnt/share

Теперь вы можете смонтировать сетевую папку с компьютера Windows под пользователем User03с помощью команды:

$ sudo mount.cifs //192.168.31.33/backup /mnt/share -o user=User03

Укажите пароль пользователя Windows для подключения к сетевой папке.

mount.cifs подключить сетевую папку smb в linux

При подключении сетевой SMB папки можно задать дополнительные параметры:

$ sudo mount -t cifs -o username=User03,password=PasswOrd1,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share

  • //192.168.31.33/backup – сетевая папка Windows
  • /mnt/share – точка монтирования
  • -t cifs – указать файловую систему для монтирования
  • -o опции монтирования (эту опцию можно использовать только с правами root, поэтому в команде используется sudo)
  • username=User03,password=PasswOrd1 – имя и пароль пользователя Windows, у которого есть права доступа к сетевой папке. Можно указать имя пользователя guest, если разрешен анонимный доступ к сетевой папке
  • iocharset=utf8 – включить поддержку кодировки UTF8 для отображения имен файлов
  • uid=1000 – использовать этого пользователя Linux в качестве владельца файлов в папке

команда mount cifs в linux

По умолчанию шары Windows монтируются в Linux с полными правами (0755). Если вы хотите изменить права по-умолчанию при монтировании, добавьте в команду опции:

dir_mode=0755,file_mode=0755

Если вы хотите использовать имя компьютера при подключении сетевого каталога Windows, добавьте в файл /etc/hosts строку:

IP_АДРЕС    ИМЯ_КОМПЬЮТЕРА

Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.

Например:

$ mcedit ~/.windowscredentials

Добавьте в файл:

username=User03
password=PasswOrd1

сохранить пароль для подключения к сетевой папке в windows

Для подключения к папке под анонимным пользователем:

username=guest
password=

Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:

domain = vmblog.ru

Измените права на файл:

$ chmod 600 ~/.windowscredentials

Теперь при подключении сетевой папки вместо явного указания имени пользователя и пароля можно указать путь к файлу:

$ sudo mount -t cifs -o credentials=/home/sysops/.windowscredentials,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share

Отмонтировать сетевую SMB папку:

$ sudo umount /mnt/share

Автоматическое монтирование сетевой папки в Linux

Можно настроить автоматическое монтирование сетевой папки Windows через /etc/fstab.

$ sudo mcedit /etc/fstab

Добавьте в файл следующую строку подключения SMB каталога:

//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev 0 0
  • rw – смонтировать SBM папку на чтение и запись
  • nofail – продолжить загрузку ОС если не удается смонтировать файловую систему
  • _netdev – указывает что подключается файловая система по сети. Linux не будет монтировать такие файловые системы пока на хосте не будет инициализирована сеть.

Вы можете указать версию протокола SMB, которую нужно использовать для подключения (версия SMB 1.0 считается небезопасной и отключена по-умолчанию в современных версиях Windows). Добавьте в конец строки с настройками подключения параметр vers=3.0.

//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev,vers=3.0 0 0

Если на стороне хоста Windows используется несовместимая (старая версия) SMB, при подключении появится ошибка:

mount error(112): Host is downилиmount error(95): Operation not supported

Чтобы сразу смонтировать сетевую папку, выполните:

$ mount -a

Linux: подключиться к сетевой папке с помощью клиента samba

Установите в Linux клиент samba:

  • В Ubuntu/Debian: $ sudo apt-get install smbclient
  • В CentOS/Oracle/RHEL: # dnf install smbclient

Для вывода всех SMB ресурсов в локальной сети:

$ smbtree -N

Вывести список доступных SMB папок на удаленном хосте Windows:

smbclient -L //192.168.31.33 -N

Если в Windows запрещен анонимный доступ, появится ошибка:

session setup failed: NT_STATUS_ACCESS_DENIED

В этом случае нужно указать учетную запись пользователя Windows, которую нужно использовать для подключения:

smbclient -L //192.168.31.33 -U User03

Если нужно использовать учетную запись пользователя домена, добавьте опцию –W:

smbclient -L //192.168.31.33 -U User03 –W Domain

smbclient вывести список общих папок на компьютере windows

Для интерактивного подключения к сетевой папке Windows используется команда:

smbclient //192.168.31.33/backup -U User03 -W Domain

или

smbclient //192.168.31.33/backup -U User03

Для анонимного доступа:

smbclient //192.168.31.33/backup -U Everyone

После успешного входа появится приглашение:

smb: \>

Вывести список файлов в сетевой папке:

dir

smbclient вывести список файлов в сетевой папке linux

Скачать файл из сетевой папки Windows:

get remotefile.txt /home/sysops/localfile.txt

Сохранить локальный файл из Linux в SMB каталог:

put /home/sysops/localfile.txt  remotefile.txt

Можно последовательно выполнить несколько команд smbclient:

$ smbclient //192.168.31.33/backup -U User03 -c "cd MyFolder; get arcive.zip /mnt/backup/archive.zip"

Полный список команд в smbclient можно вывести с помощью команды help. Команды smbclient схожи с командами ftp клиента.

При использовании команды smbclient может появиться ошибка:

Unable to initialize messaging contextsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it.

Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf.

Если на хосте Windows отключен протокол SMB 1.0, то при подключении с помощью smbclient появится ошибка:

Reconnecting with SMB1 for workgroup listing.
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
Unable to connect with SMB1 -- no workgroup available.

Очень часто бывает так, что в доме находятся компьютеры с разными операционными системами. И нужно организовать между ними локальную сеть, обеспечить общий доступ к файлам. Сделать это очень просто.

Общие сведения.

Для создания общих сетевых ресурсов в среде Windows, применяется протокол CIFS (ранее известный как SMB), поддержка которого в UNIX-подобных системах обеспечивается программным обеспечением Samba. Samba работает по протоколам TCP и UDP, соединение шифруется. С помощью Samba возможно обеспечить не только общий доступ к файлам и принтерам, но и, например, построить контроллер домена с поддержкой Active Directory (об этом в следующий раз). С помощью Samba можно открыть общий доступ не только между Windows и Linux, но и между Linux и Linux. Однако есть некоторые ограничения. Во первых, SMB — это «виндовый» протокол, со всеми вытекающими. Он не слишком хорошо интегрируется с UNIX-системами. Не вдаваясь в сложные технические описания, скажу лишь что скорость передачи данных по Samba медленнее, зачастую значительно, она нестабильна, как и загрузка сетевого канала, а также даёт весьма ощутимую нагрузку на процессор. Поэтому если в вашей домашней сети нет Windows-машин, то предпочтительнее использовать протокол сетевой файловой системы — NFS.

Суть работы NFS весьма проста. Удалённый ресурс встраивается в общее дерево файловой системы, и в результате каталог, который находится на файловом сервере или другом компьютере, отображается в вашей системе как локальный, будто находится на диске. NFS работает по протоколу TCP. NFS весьма полезна при создании так называемых тонких клиентов (бездисковые рабочие станции, в которых система загружается по сети). Скорость передачи данных по NFS в 2 раза выше, чем через Samba, загрузка сети равномерная, а нагрузка на центральный процессор минимальная. Однако у NFS есть два недостатка. Первый — довольно фиговая поддержка в Windows (реализуется через подсистему UNIX и отдельное приложение). Второй — отсутствие шифрования (c версии NFSv4, для шифрования может использоваться протокол Kerberos). Тем не менее, для Линуксовой сети, NFS — идеальный вариант.

Внимание: на обеих системах должны быть настроены статические IP адреса.В Windows кликнете правой кнопкой на значке сетевых подключений и выберите «Центр управления сетями и общим доступом», далее «Изменение параметров адаптера», выберите нужный адаптер (вашу сетевую карту) и зайдите в её свойства. Перейдите в пункт «Протокол Интернета версии 4» и выберите «Использовать следующий IP адрес»:

Если ваши компьютеры соединены напрямую, поле «Основной шлюз» можете оставить пустым. Если через роутер — укажите IP адрес роутера (тот, через который осуществляется доступ к его вэб-интерфейсу, обычно 192.168.0.1). В Linux аналогичную операцию можно провести в Network Manager (настройка сетевых подключений, вкладка IPv4):

Если вы используете фаерволл (брандмауэр Windows либо другое аналогичное ПО, а также iptables в Linux или фаерволл в вашем роутере), убедитесь что открыты нужные порты (Для SAMBA: 135, 139, 445/TCP; 137, 138/UDP. Для NFS: 2049/TCP).

Linux => Windows

Представим ситуацию: у вас есть второй компьютер (или файловый сервер), под управлением Ubuntu 14.04, на котором находится большая коллекция ваших видео, фото и так далее, расположенная на отдельном диске, который монтируется в /media/MyDATA. Этот диск нужно расшарить на компьютер под управлением Windows 8.1. Первым делом, установим необходимые пакеты:

sudo apt install samba samba-common smbclient

Теперь необходимо сконфигурировать Самбу. У вас есть два пути: консольный и графический.

Консольный.

Открываем файл /etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

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

[global]
workgroup = WORKGROUP
netbios name = Ubuntu-PC
server string = Ubuntu PC
map to guest = bad user
guest account = nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192


#Следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes


log level = 1


# UTF кодировка
unix charset = UTF-8
dos charset = cp1251
store dos attributes = yes


max log size = 10




[MyDATA]
path = /media/MyDATA
writeable = yes
available = yes
public = yes
guest ok = yes
force user = nobody
force group = nobody

В секции global описываются общие параметры: WORKGROUP — имя рабочей группы (должно быть одинаково для всех машин в локальной сети), Ubuntu-PC — имя компьютера, с которого расшариваются каталоги (укажите своё), вход без пароля, гостевой доступ и оптимизации для соединения. В секции MyDATA описывается доступ к диску, смонтированному в /media/MyDATA. При желании вы можете указать доступ к отдельным каталогам на этом диске, аналогичным способом. Сохраните файл и выполните команду:

testparm -s

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

Теперь запустите сервер Samba:

sudo service start smbd

Графический.

Для настройки параметров Samba в графическом интерфейсе, существует 2 замечательные утилиты — system-config-samba (есть только в Ubuntu и производных) и gadmin-samba (есть везде). Эти утилиты представляют собой весь конфиг Самбы, выполненный в графическом режиме. Для Ubuntu установим первую утилиту:

sudo apt install syste-config-samba

Здесь всё предельно понятно и в настройках разберётся любой :)

Для других дистрибутивов (например Debian), установите пакет gadmin-samba:

sudo apt install gadmin-samba

После настройки, перезапустите демон Samba. Для Ubuntu:

sudo service restart smbd

Для Debian:

sudo systemctl restart smbd.service

Также можно открыть доступ к нужному каталогу из файлового менеджера, открыв свойства каталога:

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

После этого, в сетевом окружении, должны появиться расшаренные каталоги.

Linux => Linux

А теперь представим, что у нас есть компьютер с Debian 8 (IP адрес 192.168.0.2), и ноутбук с Ubuntu 14.04 (IP адрес 192.168.0.3). С ноутбука нужно расшарить раздел диска, который смонтирован в /media/DATA (это раздел для торрентов и прочей файлопомойки). Для этого мы используем NFS:

sudo apt install nfs-kernel-server nfs-common rpcbind

Укажем что нужно расшаривать:

sudo nano /etc/exports

/media/DATA 192.168.0.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)



/media/DATA — то, что нужно расшарить.
192.168.0.0/255.255.255.0 — только компьютерам в этой подсети будет обеспечен доступ к общему ресурсу (можете указать конкретный IP адрес).
rw — поддержка чтения и записи.
no_root_squash — Позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу.
no_subtree_check — Если монтируется только часть тома, то сервер будет выполнять проверку принадлежности файла запрошенного клиентом, именно к той части тома, которая примонтирована. Это замедляет передачу данных, по этому зачастую данная опция включена в список параметров.
crossmnt — Этот параметр похож на nohide он дает возможности видеть каталоги смонтированные на основной системе. Таким образом, когда дочерняя файловая система «B» установлена на основной «А», установив crossmnt на «А» имеет тот же эффект, что и установка «nohide» на B.
fsid=0 — NFS-сервер должен быть в состоянии идентифицировать каждую файловую систему, которую экспортирует. Для сервера NFSv4, существует выделенная файловая система, которая является корнем всей экспортируемой файловой системе. fsid = root или fsid = 0 означают одно и то же.

Применяем настройки:

sudo exportfs -a

Далее нужно указать, каким хостам в сети разрешено иметь доступ к серверу:

sudo nano /etc/hosts.allow

Указываем доступ для всех машин, находящихся в подсети 192.168.0.0/255.255.255.0:

nfsd: 192.168.0.0/255.255.255.0
rpcbind: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0

Если вы указали в файле exports только IP адрес нужной машины, то соответственно, указывайте его.

Теперь запустите сервис:

sudo service nfs-kernel-server start

На компьютере установите следующие пакеты:

sudo apt install nfs-common rpcbind

Создайте директорию для монтирования общего ресурса:

sudo mkdir /media/Share

Монтирование вручную.

sudo mount -t nfs4 192.168.0.3:/ /media/Share

В результате всё содержимое диска /media/DATA (на ноутбуке) окажется доступным на компьютере в каталоге /media/Share, как если бы эти данные хранились на нём. Для того чтобы ресурс монтировался автоматически после загрузки системы, есть два способа.

Монтирование через fstab.

Файл /etc/fstab содержит в себе информацию о присутствующих файловых системах, точках монтирования и параметрах монтирования. Чтобы ресурс /media/DATA монтировался на ваш компьютер автоматически, добавьте в конец файла /etc/fstab следуюущую строку:

192.168.0.3:/   /media/Share   nfs   user,rw,noauto   0   0

Опция noauto запрещает автоматическое монтирование во время загрузки, так как сеть может быть недоступна в этот момент. Вместо этого, в файловом менеджере, в левой колонке появится пункт Share, кликнув на который, сетевой ресурс автоматически смонтируется. Однако при таком способе монтирования, есть пара существенных недостатков. Во первых, если в момент выключения компьютера, был открыт какой-либо файл, расположенный на сетевом ресурсе, компьютер откажется выключаться. Во-вторых, такая же ситуация произойдёт в случае пропажи связи между клиентом (компьютером) и сервером (ноутбуком). Для того, чтобы этих проблем не было, существует второй способ монтирования.

Монтирование с помощью AutoFS.

AutoFS — это пакет для обеспечения монтирования съёмных и сетевых накопителей, только при обращении к ним. При отсутствии обращения к сетевому ресурсу или съёмному устройству в течении определённого времени, он автоматически размонтируется, и мгновенно монтируется при первом же обращении к нему. Устанавливаем:

sudo apt install autofs

Настраиваем:

sudo nano /etc/auto.master

В конец файла добавляем строку:

/mnt    /etc/auto.nfs —timeout=60

/mnt — каталог для монтирования сетевого ресурса.
/etc/auto.nfs — путь к файлу, в котором описаны параметры монтирования.
—timeout=60 — время в секундах, после которого произойдёт размонтирование ресурса (можете указать своё).

Сохраняем и переходим к следующему файлу:

sudo nano /etc/auto.nfs

Добавляем строку:

Share       -fstype=nfs,rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto  192.168.0.3:/

Создадим директорию Share в каталоге /mnt, куда будет монтироваться ресурс:

sudo mkdir /mnt/Share

Вот и всё. Теперь в каталоге /mnt/Share, при первом же обращении к нему, будет появляться содержимое удалённого ресурса /media/DATA. Кнопка подключения сетевого диска появится в файловом менеджере.

Дополнительные материалы:

Руководство Samba
Руководство NFS

 

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

Рассмотрим, как это происходит с ОС Ubuntu

Для доступа к сетевым папкам я рекомендую использовать Nautilus, который является основным файловым менеджером для Ubuntu

Если он у Вас отсутствует (например, при установке Lubuntu), можно установить его

sudo apt-get install nautilus

Для перехода к адресу нажимаем CTRL+L («Перейти» ->»Ввести адрес…») и вводим адрес Вашего сервера

Например, для перехода к серверу my-file-share

В случае Windows

\\my-file-share

В случае работы через Nautilus

smb://my-file-share

В зависимости от настройки файлового сервера, у Вас может спросить логин/пароль

Также для облечения работы в дальнейшем Вы можете добавить закладку CTRL+D («Закладки» ->»Добавить закладку на это адрес»)

Иногда во время работы с файловыми серверами необходимо передавать данные для авторизации (например, доступ для не авторизованных пользователей запрещен, но данные не запрашивает. Такое встречается при работе в доменных сетях Windows)

Рассмотрим структуру адресной строки

smb://[[<domain>;]<username>[:<password>]@]<server>[:<port>][/[<share>[/[<path>]]][?[<param>=<value>[<param2>=<value2>[…]]]]]

Обязательным параметром является адрес сервера  <server>

Остановимся на основных параметрах

  • <server> — адрес сервера, возможно использование myhost myhost.mydomain.org 10.0.0.1
  • <domain> — имя домена или рабочей группы
  • <username> — имя пользователя
  • <password> — пароль
  • <port> — порт, на котором сервер слушает обращения, необходимо указывать крайне редко
  • <share> — имя расшаренного ресурса
  • <path> — путь к файлу/директории

Пары <param>=<value> мне на своей практике использовать не приходилось, поэтому останавливаться на них не буду.

Самые распространенные комбинации для использования

Подключение к шаре share сервера myhost под именем пользователя user с паролем password. В данном примере рабочая группа/домен клиента и сервера совпадают

smb://user:password@myhost/share

Подключение к шаре share сервера myhost под именем пользователя user, который является членом домена domain с паролем password

smb://domain;user:password@myhost/share

Указывать данные для авторизации полезно, если вы работаете с сетевыми ресурсами, к которым нужен частый доступ и Вы его добавили в закладки

На этом закончу, если у Вас появились вопросы, задавайте их в комментариях.

В разных компаниях чаще всего компьютерные сети построены с использованием серверных версий Windows. Работать в таких сетях на компьютере с Ubuntu вполне можно. В этой статье полезная информация, описание настроек.

В статью внесены правки, всё сказанное актуально для Ubuntu версии 20.04.

Пользователи

При таком раскладе будет как минимум два вида пользователей:

  1. Пользователи непосредственно у вас на компьютере. Вы создаёте первого пользователя, когда устанавливаете Ubuntu. Под ним вы работаете у себя на компьютере.
  2. Пользователи сети Windows. Для вас такого пользователя заводит системный администратор компании. Используя данные этого пользователя вы получаете доступ к сети компании. Уровень доступа этого пользователя в сети определяется администратором. Кроме каких-то общих сетевых ресурсов у вас скорее всего будет личный каталог и т.д.

Пользователь сети Windows заводится для определенного домена. Например, WORKGROUP или что-то более осмысленное. Название домена тоже необходимо будет указывать при доступе к сетевым ресурсам. В больших компаниях может использоваться несколько доменов, тогда и пользователей второго вида может быть несколько.

Работа в сети

Полное правильное название сетей Windows – это «Microsoft Windows Network», в русском языке – «Сети Microsoft Windows». Работа с такими сетями осуществляется с использованием протокола SMB (Server Message Block). Ранее протокол имел название CIFS (Common Internet File System). С его помощью можно получить удалённый доступ не только к файлам, но и принтерам.

Файловый менеджер Ubuntu под названием «Файлы» довольно функционален. Он умеет работать по протоколу SMB. Для открытия сетевого ресурса нажмите «Другие места» и внизу вы увидите поле, куда нужно ввести адрес для подключения, можно ввести например:

smb://company-diskstation/dir

В случае необходимости у вас будут запрошены данные для доступа — имя пользователя, пароль, домен.

Файловый менеджер Ubuntu под названием «Файлы»

Обычно в компаниях организованы какие-то общие хранилища, куда имеют доступ пользователи и где находится личный каталог. Такие хранилища удобно монтировать сразу при запуске Ubuntu. Тогда во всяких файловых менеджерах, вроде «Файлы», Double Commander и т.д. вы будете сразу видеть эти ресурсы. С ними удобно будет работать. Также, как и с обычным каталогами на локальном диске. Не надо будет вводить пароль и прочее.

Монтировать сетевые ресурсы лучше через файл /etc/fstab. Здесь всё это можно настроить один раз и забыть. Работает очень стабильно. Я у себя на рабочем компьютере последний раз открывал этот файл более года назад.

Пример подключения сетевого каталога:

//company-diskstation/dir /mnt/company/diskstation cifs credentials=/home/kornev/.smbuser,uid=1000 0 0

Здесь:

  • //company-diskstation/dir — сетевой ресурс SMB вместе с подкаталогом.
  • /mnt/company/diskstation — каталог на локальном диске, куда он будет смонтирован.
  • /home/kornev/.smbuser — файл, в котором записаны данные для доступа (см. ниже).
  • uid=1000 — id пользователя у вас на компьютере (см. ниже).

Файл /home/kornev/.smbuser не является обязательным. Это для удобства. Чтобы не писать каждый раз одни и те же данные. Ведь подобных строчек для подключения сетевых ресурсов может быть много. А еще этот же файл можно будет использовать из разных скриптов, которые тоже подключаются к SMB-ресурсам. Понадобится потом изменить данные доступа, это придется сделать только один раз, в этом файле.

Файл может иметь любое имя и расположение, внутри:

username=имя_пользователя_windows
password=пароль_пользователя_windows
domain=WORKGROUP

Что касается id пользователя. Это необходимо, чтобы сетевой ресурс монтировался в нормальном режиме, чтобы мы могли с ним полноценно работать. Без этого у меня получался режим «только чтение». Есть ещё gid=1000 – параметр id группы, который тоже можно добавить. Но у меня и без него все работало.

Узнать uid и gid для пользователя kornev можно командами:

id -u kornev
id -g kornev

Пример скрипта script.sh, с подключением и отключением ресурса SMB:

#!/bin/bash

# Переменные
dir_local=/mnt/work_dir
dir_smb=//remote/dir/in/windows/network

# Подключение
/sbin/mount.cifs $dir_smb $dir_local -o credentials=/home/kornev/.smbuser,uid=1000 0 0

# Запуск некой обработки

# Отключение
umount $dir_local

Принтер и МФУ

С сетевыми принтерами всё очень просто. Доступные в сети принтеры у вас сами появятся в настройках. Необходимо только выбрать, какой из них вы хотите использовать по умолчанию.

Сетевые принтеры в Ubuntu

У меня компьютер работает без выключения днями, иногда неделями. При этом часто бывает, что я отправляю на печать, но печать не идёт. В активных заданиях видно, что печать документов приостановлена. Иногда видно сообщение «No suitable destination host found by cups-browsed». Не знаю, связанно ли это как-то с проблемой.

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

sudo systemctl stop cups-browsed
sudo systemctl start cups-browsed

Либо:

sudo systemctl restart cups-browsed

Если принтер — это МФУ и требуется на нём сканировать, то необходимо выполнить дополнительные настройки. Суть в том, что после сканирования готовые документы должны куда-то складываться. Обычно это настраивается через веб-интерфейс МФУ. Куда складывать?

  • Это может быть каталог вашего пользователя в сети. Тогда вам ничего делать не нужно, настройка такой работы – это забота администратора. Вы только можете смонтировать свой каталог, как было описано выше, чтобы вам проще было работать с отсканированными документами.
  • Второй вариант – это настроить у себя на компьютере каталог с доступом по SMB или FTP. Мне больше нравится вариант с SMB. Не использую FTP нигде очень давно.

Устанавливаем Samba, если ещё не установлена:

sudo apt install samba

Лучше создать нового отдельного пользователя специально для этих нужд, данные которого потом сообщить администратору. Он внесёт их в МФУ.

Назовём этого пользователя share-user:

sudo useradd -d /dev/null share-user

Задаём пароль этому пользователю, иначе он будет недоступен:

sudo passwd share-user

Пользователя и пароль также внесём в базу данных Samba:

sudo smbpasswd -a share-user

Каталог у себя на компьютере, например /mnt/company/kornev_share, создавайте от имени и группы этого пользователя.

Пример конфига /etc/samba/smb.conf:

[global]
security = user
passdb backend = tdbsam
workgroup = WORKGROUP
server min protocol = NT1
server string = MyPC Samba

[kornev_share]
path = /mnt/company/kornev_share
valid users = @share-user
force group = share-user
create mask = 0771
directory mask = 0771
writable = yes

Здесь стоит обратить внимание на параметр server min protocol = NT1. Дело в том, что есть разные версии протокола SMB. Часто бывает, что даже не сильно старые МФУ не поддерживают новые версии протокола. Данным параметром мы разрешаем подключение с использованием SMB v1. Попробуйте. Если без этого параметра у вас всё будет работать, то лучше не ставить его.

Перезапуск Samba для применения изменений:

sudo service smbd restart

Если администратор со свой стороны все настроил, то можно пользоваться:

МФУ с доступом по SMB к вашему компьютеру

  • Как подключиться с линукса к общей папке windows
  • Как подключиться к точке доступа на ноутбуке windows
  • Как подключиться к сети windows server
  • Как подключиться к терминальному серверу windows
  • Как подключиться по telnet windows 10