Samba: установка, настройка, оптимизация работы
Linux — отличная операционная система, но от Windows мы не куда не денемся и он от нас тоже. Windows будет окружать нас всегда — будь то домашняя, корпоративная сеть или интернет-кафе. Нам постоянно предстоит обмениваться документами с Windows-компьютерами — ведь далеко не все пользователи предпочитают работать в Linux. Имея в своем распоряжении сервер на Linux, в любом случае возникнет необходимость взаимодействия с Windows-компьютерами, поэтому речь и пойдет о подключении Linux к сети Microsoft.
Установка Samba
Для установки Samba нам нужно установить пакеты samba и samba-client. Желательно также установить пакет smbfs. Кроме того, система поставит на обновление пакет samba-common, который возможно уже установлен в системе. Все мои манипуляции будут проводится на Ubuntu 10.04, основные отличия от других дистрибутивов – это способ установки. Для Ubuntu через консоль, таким образом:
Или используя менеджер пакетов Synaptic, что я и сделал, такой вариант оказался более удобным для меня, поскольку можно было выбрать из списка те пакеты, которые мне нужны, это были:
-
samba
-
smbclient
-
samba-common
Если вы когда-то использовали другой дистрибутив Linux, то наверняка знакомы с программой LinNeighborhood. Это графическая программа, которая позволяет просматривать ресурсы Windows-сети. В Ubuntu в ней нет никакой необходимости. Во-первых, штатные средства GNOME позволяют просматривать Windows-сети. А во-вторых, ради интереса было установлено программу LinNeighborhood с одного из репозиториев Ubuntu. Выяснилось, что эта программа, найденная Synaptic, вообще не пригодна к использованию (проблемы с локализацией). Ну и ладно, смысл разбираться, если есть отличные стандартные средства, которые уже работают.
Базовая настройка Samba
На этом этапе будем считать, что утилита установлена. Основной конфигурационный файл Samba — /etc/samba/smb.conf. Его необходимо открыть и изменить несколько параметров. Первый это workgroup — он задает имя (на Ваш выбор) рабочей группы или домена NT:
Можете также установить параметр comment — это описание вашего компьютера:
Установите параметр security. Если сеть клиент/сервер, то нужно выбрать параметр server, а если одноранговая сеть (т. е. сеть без выделенного сервера), то нужно выбрать user или share:
Имя гостевой учетной записи установите так:
Также нужно настроить кодировки:
character set = utf8
Для того чтобы Samba работал быстрее, установите следующие опции:
dns proxy = no
Немного далее будет описано, что они означают.
Параметр interfaces указывает интерфейсы, на которых должен работать сервис Samba. Необходимо указать те интерфейсы, которые связывают нашу машину с Windows-сетями:
Настройка общих ресурсов
Теперь осталось сконфигурировать ресурсы, которые мы хотим предоставить в общее пользование, это секция [public].
# общий каталог
comment = Public Directory
# путь
path = /var/samba
# не только чтение
read only = no
# разрешить запись
writable = yes
# разрешить гостевой доступ
guest ok = yes
# разрешить просмотр содержимого каталога
browseable = yes
В этом случае общим ресурсом нашего компьютера будет каталог /var/samba (его нужно создать, поскольку по умолчанию в системе нет такого каталога). В него другие пользователи смогут записывать свои файлы (read only=no, writeable=yes), естественно, они смогут их и читать (browseable=yes). Проверка имени пользователя и пароля для доступа к ресурсу не нужна (guest ok=yes) — используется так называемый гостевой доступ. Комментарий «Public Directory» увидят другие пользователи Windows-сети при просмотре ресурсов нашего компьютера.
Если есть необходимость предоставить общий доступ («расшарить») к домашним каталогам пользователей, то идем в секцию ;[homes]. Раскомментируем все строки, закомментированные с помощью точки с запятой до строки ;[netlogon]. Т.е. должно получиться следующее:
comment = Home Directories
browseable = no
valid users = %S
writable = no
create mask = 0600
directory mask = 0700
Сейчас пользовательские каталоги не будут видны в списке общих ресурсов, обратиться к ним можно по адресу \\сервер\имя_пользователя . Например, \\server\petya. Если нужно, чтобы пользовательские ресурсы можно было просмотреть, тогда устанавливаем значение yes для параметра browseable:
После всех изменений сохраняем файл конфигурации и запускаем (или перезапускаем — restart) Samba:
Просмотр ресурсов Windows-сети
Просмотреть ресурсы Windows-сети можно с помощью программы smbclient, но она работает в текстовом режиме, поэтому не совсем удобна в использовании. Гораздо удобнее использовать обозреватель файлов для просмотра ресурсов сети. Сделать это можно с помощью меню Переход | Соединиться с сервером…
Секреты оптимизации Samba
Теперь поговорим о том, как заставить Samba работать немного быстрее. Если вы откроете файл конфигурации smb.conf, то найдете в нем параметр wide links. Никогда не устанавливайте его в no! Так мы существенно снизим производительность Samba. Наоборот, установить его нужно в yes (если до этого параметр wide links был отключен), что существенно повысит производительность.
Параметр wide links определяет, как Samba будет следовать по символическим ссылкам. Если wide links=no, то Samba не будет следовать по символическим ссылкам вне экспортируемой области. Сначала Samba следует по символической ссылке, а затем выполняет так называемый directory path lookup (системный вызов, определяющий, где завершилась ссылка). Данная операция подразумевает на 6 системных вызовов больше, нежели в случае, если wide links=yes. Учитывая, что подобных операций делается очень много, то выключение wide links снижает производительность Samba приблизительно на 30%.
Протокол TCP/IP — штука тонкая. Производительность сетевых приложений во многом зависит от того, правильно ли настроен TCP/IP. Samba — истинное сетевое приложение, которое к тому же работает по протоколу TCP/IP. При использовании TCP/IP, если размер запросов и ответов не фиксирован (как в случае с Samba), рекомендуется применять протокол TCP с опцией TCP_NODELAY. Для этого в файл smb.conf нужно добавить строку:
Тесты показывают, что Samba при больших нагрузках работает в 3 раза быстрее, чем без указания этих опций. Если Samba используется в локальной сети (в большинстве случаев так оно и есть), рекомендуется еще указать опцию IPTOS_LOWDELAY:
Если есть желание «выжать» из Samba еще больше, тогда устанавливаем следующие параметры буферизации: SO_RCVBUF=8192 SO_SNDBUF=8192. Например:
Установка GUI
Для не любителей консоли Samba имеет графический интерфейс настройки. Установить его можно знакомым уже, и стандартным для Ubuntu способом:
Само приложение достаточно простое и удобное для управления доступом к своим ресурсам. Запуск опять таки из терминала:
Зачём так издеваться над самбой? Можно ведь просто кликнуть правой кнопкой мыши по нужной папке и ubuntu сама попросит установить самбу.
Меня почему-то устраивает Убунту. И пожалуй останусь при своих баранах)))
А за статью спасибо, с некоторой стороны было познавательно
Про Linux много слышала, но сама, конечно, использую Windows — как Вы правильно заметили, куда от него денешься. Ну, он как-то меня устраивает, и вроди менять его даже и не хочется.
Не заменит пока линукс полностью виндоус. Почитал статью, и подумал может поставить ради интереса себе)
Пользуюсь Windows, но статья интересная, сразу зачесались руки попробовать воплотить. Хотя, если можно проще, то зачем время тратить?
Действительно это занимает очень много времени и для того чтобы не мучиться нужно как и всегда доверять Windows.
это занимает много времени на чтение, и только..))
я например доверяю Windows и всегда им пользуюсь, поетому я использую то 4то проверенно временем и пространством!!!!!!!!