Настройка nfs astra linux

Обновлено: 08.07.2024

Сервер: 192.168.1.5
Клиент: 192.168.1.100

Требуется подключить существующую папку /home и специально созданную папку /var/nfs с сервера к клиенту.

Установка пакетов

Прежде всего, требуется установить необходимые компоненты как на сервере, так и на клиентских компьютерах. На сервере вам потребуется установить пакет nfs-kernel-server , который позволит использовать совместный доступ к вашим каталогам.

На клиентском компьютере вам потребуется установить пакет nfs-common.

Создание общего каталога на сервере

Мы будем монтировать специально созданный на сервере каталог на клиентский компьютер. Создадим каталог nfs.

Теперь отредактируем файл, отвечающий за совместное использование ресурсов NFS

В случае если нужно раздать каталог на все компьютеры подсети вместо 192.168.1.100 нужно указать 192.168.1.0/24

Давайте разберем, что здесь написано.

rw: эта опция позволяет клиентскому компьютеру как читать, так и записывать в данный каталог.
sync: заставляет NFS записывать изменения на диск перед ответом, что приводит к более стабильной и согласованной среде. Это связано прежде всего с тем, что ответ повторяет фактическое состояние удаленного тома.
no_subtree_check: эта опция предотвращает проверку поддеревьев. Сервер при каждом запросе проверяет, действительно ли файл все еще доступен в экспортируемом дереве. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash: по умолчанию NFS переводит запросы от пользователя root на клиентском компьютере в непривилегированного на сервере. Это параметр безопасности который не позволяет учетной записи root на клиенте использовать файловую систему сервера в качестве root.

После того, как необходимые изменения внесены и сохранены, выполним команду:

и запустим службу NFS

Данная команда сделает ваши ресурсы доступными для клиентов, которых вы настроили. Теперь перейдем к следующему шагу.

Создание точек монтирования и монтирование удаленных общих ресурсов на клиентском компьютере

Сперва создадим точки монтирования удаленных ресурсов.

Автоматическое монтирование производится через fstab

Допишем в конец файла

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

NFS предлагает простой и быстрый механизм доступа к удаленным системам по сети. Однако протокол является не зашифрованным. Если вы намерены использовать это в производственной среде, рекомендуется рассмотреть возможность запуска NFS через SSH или VPN-соединение.

Для запуска nfs требуется, чтобы в системе были установлены следующие пакеты:

  • nfs-server или unfs3 (в OpenVZ VE ядерный NFS-сервер не работает)
  • rpcbind (с шестой платформы; ранее нужен был portmap)
  • nfs-clients (содержит в себе nfslock)

(в некоторых системах вместо nfs-server и nfs-clients имеется пакет nfs-utils)

1. В файле /etc/exports указываются каталоги, которые мы экспортируем (разрешаем монтировать с других машин) (см. man exports).

По соображениям безопасности не рекомендуется экспортировать каталоги по протоколу NFS 3. Рекомендуется использовать NFS 4.

В скобочках указываются дополнительные параметры:

По умолчанию пользователь root имеет на смонтированных ресурсах права пользователя nobody.

Можно указывать разрешение экспорта сразу для подсети. Например разрешение для машин из подсети 192.168.0.X строка будет выглядеть так:

Подробную информацию о формате файла можно посмотреть командой man exports

экспортируемые по NFS 4 каталоги имеют тот же синтаксис, что и через NFS3, за исключением того, что все они должны быть в одном подкаталоге (chroot для безопасности). Пусть это каталог /exports. Тогда необходимо подмонтировать остальные экспортированные каталоги внутрь /exports с помощью mount --bind ( mount --bind /mysharedir /exports/mysharedir ), прописать в fstab:

и прописать в /etc/exports: отличие от NFS3 в том, что нужно будет добавить nohide к mysharedir и явно обьявить корневой каталог экспорта с fsid=0.

Для работы nfs необходим сервис portmap . По умолчанию, сервис portmap запущен только на loopback (lo) интерфейсе в целях безопасности. Этого достаточно для раздачи сетевых ресурсов через nfs4.

Однако при этом не будет работать монтирование каталогов по nfs3. Если это действительно нужно, то нехотя коментируем в файле /etc/sysconfig/portmap строку PORTMAP_ARGS="-l", прописываем в /etc/hosts.allow сеть, в которую раздаем:

и в /etc/hosts.deny :

после этого еще раз вдумчиво читаем http://tldp.org/HOWTO/NFS-HOWTO/security.html. и глубоко размышляем над глубокой небезопасностью запуска portmap без PORTMAP_ARGS="-l" и использования nfs3.

Начиная с шестой платформы portmap заменен на rpcbind. Настраивается аналогично portmap. Конфигурационный файл /etc/sysconfig/rpcbind, для использования nfs 3, закомментировать:

control rpcbind server

Для rw каталогов желательно настроить kerberos.

Для read-only можно просто закоментировать в файле /etc/sysconfig/nfs строку

Если все команды прошли успешно и не выдавали ошибок, то сервер можно считать работающим. Дополнительно можно запустить команду exportfs, которая выведет текущие настройки на данный момент. В случае нормальной работы она должна вывести на экран записи из файла /etc/exports

Для запуска сервисов при старте системы:

1. После настройки файла необходимо запустить сервис rpcbind (для p6,portmap для p5) командой:

2. Запустить непосредственно nfs-server командой:

3. Запустить сервис блокировок командой:

Если все команды прошли успешно и не выдавали ошибок, то сервер можно считать работающим. Дополнительно можно запустить команду exportfs, которая выведет текущие настройки на данный момент. В случае нормальной работы она должна вывести на экран записи из файла /etc/exports

Для запуска сервисов при старте системы:

отлаживаем rpc.nfsd (опция -d):

Оказывается, включен ipv6 и включен протокол v.3 (см. version string to kernel: -2 +3 +4) который не получается повесить на ipv6 адрес.

  • Решение1 (если nfs3 не нужен): выключить v.3 (опция -N3) в $NFSD_OPTIONS: прописываем в /etc/sysconfig/nfs

после чего nfs нормально запускается.

в /etc/netconfig закомментировать

Подключение к nfs-серверу можно производить вручную, а можно настроить автоматическое подключение при загрузке.

Допустим машина где запущен nfs-server называется server, и нам необходимо смонтировать с сервера каталог /myshare Тогда, для ручного способа достаточно (из под пользователя root) выполнить команду:

Для автоматического монтирования к nfs-серверу при загрузке необходимо добавить следующую строку в файл /etc/fstab:

Кроме того, стоит убедиться, что сервис netfs запускается при старте системы.

Прежде чем изменять /etc/fstab, попробуйте смонтировать вручную и убедитесь, что всё работает.

Осуществляется при помощи automount, autofs или subfs.

Использование avahi. Установите пакет avahi-service-nfs или вручную создайте на сервере файл /etc/avahi/services/nfs.service , используется nfs4:

и запустите на сервере nfs сервис avahi-daemon. Проверьте с машин-клиентов, что сервер nfs виден с этих машин с помощью команды

Установите на машины-клиенты autofs. С настройками по умолчанию, ресурсы nfs будут монтироваться как /mnt/net/servername/netshare.

Для домашней локальной сети, когда nfs раздается не с сервера, а с другой рабочей станции, которую могут выключить в любой момент, рекомендуется прописывать у клиентов в /etc/sysconfig/autofs timeout поменьше (например, 5 сек):

при включенном ipv6 команда avahi-browse -tkrp _nfs._tcp кроме IPv4 _nfs сервиса

выдаст и IPv6 _nfs сервис

который не поддерживается autofs-5.1.5-alt1 из p9, что приведет к неработоспособности автомонтирования NFS. До исправления autofs можно отключить ipv6

В операционных системах Linux и UNIX вы можете использовать команду mount для монтирования общего каталога NFS в определенной точке монтирования в локальном дереве каталогов.

В этом руководстве мы покажем вам, как вручную и автоматически смонтировать общий ресурс NFS на машинах Linux.

Установка клиентских пакетов NFS

Чтобы смонтировать общий ресурс NFS в системе Linux, сначала необходимо установить клиентский пакет NFS. Название пакета отличается в разных дистрибутивах Linux.

Установка клиента NFS в Ubuntu и Debian:

Установка клиента NFS на CentOS и Fedora:

Монтирование файловых систем NFS вручную

Подключение удаленного общего ресурса NFS аналогично монтированию обычных файловых систем.

Чтобы смонтировать файловую систему NFS в заданной точке монтирования, используйте команду mount в следующей форме:

Выполните следующие действия, чтобы вручную смонтировать удаленный общий ресурс NFS в вашей системе Linux:

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

Подключите общий ресурс NFS, выполнив следующую команду от имени пользователя root или пользователя с привилегиями sudo :

В случае успеха вывод не производится.

Если вы хотите указать дополнительные параметры монтирования , используйте параметр -o . Несколько вариантов могут быть представлены в виде списка, разделенного запятыми. Чтобы получить список всех параметров монтирования, введите в терминале man mount .

Чтобы убедиться, что удаленный том NFS успешно смонтирован, используйте команду mount или df -h .

После монтирования общего ресурса точка монтирования становится корневым каталогом смонтированной файловой системы.

Когда вы монтируете общий ресурс вручную, подключение общего ресурса NFS не сохраняется после перезагрузки.

Автоматическое монтирование файловых систем NFS с помощью /etc/fstab

Как правило, вы хотите автоматически монтировать удаленный каталог NFS при загрузке системы.

Файл /etc/fstab содержит список записей, определяющих, где, как и какая файловая система будет монтироваться при запуске системы.

Чтобы автоматически монтировать общий ресурс NFS при запуске системы Linux, добавьте строку в файл /etc/fstab . Строка должна включать имя хоста или IP-адрес сервера NFS, экспортированный каталог и точку монтирования на локальном компьютере.

Используйте следующую процедуру для автоматического монтирования общего ресурса NFS в системах Linux:

Настройте точку монтирования для удаленного общего ресурса NFS:

Добавьте в файл следующую строку:

Выполните команду mount в одной из следующих форм, чтобы смонтировать общий ресурс NFS:

Команда mount прочитает содержимое /etc/fstab и смонтирует общий ресурс.

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

Размонтирование файловых систем NFS

Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.

Чтобы отсоединить смонтированный общий ресурс NFS, используйте команду umount за которой следует либо каталог, в котором он был смонтирован, либо удаленный общий ресурс:

Если для монтирования NFS есть запись в fstab , удалите ее.

Команда umount не сможет отсоединить общий ресурс, когда смонтированный том используется. Чтобы узнать, какие процессы обращаются к общему ресурсу NFS, используйте команду fuser :

Как только вы найдете процессы, вы можете остановить их с помощью команды kill и отключить общий ресурс NFS.

Если у вас все еще есть проблемы с --lazy ресурса, используйте параметр -l ( --lazy ), который позволяет вам отключать загруженную файловую систему, как только она больше не занята.

Если удаленная система NFS недоступна, используйте параметр -f ( --force ) для принудительного размонтирования.

Как правило, не рекомендуется использовать опцию принудительного выполнения, так как это может повредить данные в файловой системе.

Выводы

Мы показали вам, как подключать и отключать удаленный общий ресурс NFS. Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Изображение пользователя dm.

Задача: Сделать общую папку доступную по сети между двумя компьютерами с linux. Проще говоря нам нужно расшарить папку на компьютере с linux чтобы мы могли видеть её по сети на другом компьютере с linux.

Компьютеры имеют адреса:

10.0.0.1 - Сервер (на нем физически находится папка с общим доступом) и
10.0.0.2 - Клиент с него будем осуществлять доступ.

Устанавливаем NFS на компьютер - сервер

  1. sudo aptitude install nfs-kernel-server nfs-common portmap
  2. Создаем папку в домашней директории пользователя к которой будем открывать доступ:
    mkdir Share
  3. Добавляем в файл /etc/exports строку:
    /home/user/Share 10.0.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check)
    echo "/home/user/Share 10.0.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check)" | sudo tee -a /etc/exports
  4. Перезагружаем NFS сервер чтобы изменения вступили в силу:
    sudo /etc/init.d/nfs-kernel-server restart
    можно также использовать команду:
    sudo exportfs -a

Настраиваем компьютер - клиент

  1. sudo aptitude install portmap nfs-common
  2. Создаем папку в которую будем монтировать сетевую папку компьютера - сервера
    mkdir Share
  3. Монтируем сетевую папку:
    sudo mount 10.0.0.1:/home/user/Share Share
    если нужно чтобы сетевая папка монтировалась автоматически, тогда добавляем в файл /etc/fstab строку: 10.0.0.1:/home/user/Share /home/user/Share nfs timeo=50,hard,intr
    echo "10.0.0.1:/home/user/Share /home/user/Share nfs timeo=50,hard,intr" | sudo tee -a /etc/fstab
    при загрузке и после обрыва связи сетевая папка будет монтироваться автоматически.

P.S. Если вы используете firewall, то вам потребуется открыть порты: 32771, 111 и 2049

Комментарии (79)

Изображение пользователя SeaJey.

10.0.0.2 - IP адрес компьютера - клиента с которого будет осуществляться доступ. Можно заменить на * тогда папка будет доступна компьютерам с любым IP адресом.

А такой вариант:
192.168.*.* прокатит?
В смысле, нужно нескольким сегментам подсети возможность доступа оставить.

Изображение пользователя dm.

Не пробовал, но думаю что прокатит

А если нужно чтоб видели на компьютере с вендой?

Изображение пользователя Bazilio.

При чём samba-то? Оснастка NFS есть для Win 2003 Server, для XP есть NFS-клиенты, правда почти все платные..

Изображение пользователя vap.

сама винда тоже платная

Изображение пользователя AVolkov.

Акромя самбы - под венду можно поставить пакет для совместимости с NFS (unix. чего-то там, на их сайте нашел штуку, увестстая довольно-таки)

Изображение пользователя Fractal.

отлична статья и хорошо, что сказано - какое порты открывать, а то у нас был как-то параноик который не мог с сервера документы забирать как раз из-за этого(ладно админы добрые были)

на счет паранои, nfs это не безопасно. Юзать только в локалке стоит. или в шифрованном туннеле

Изображение пользователя buba.

Стоит заметить, что данный вариант с авто-монтированием работает с витой парой, в вай-фай такое не пойдёт, поскольку при загрузке, а именно в момент чтения fstab беспроводная сеть отключена и подключается гораздо позже(уже в DE), поэтому пришлось делать скрипт и запускать по щелчку на иконку.

P.S. Если вы используете firewall, то вам потребуется открыть порты: 32771, 111 и 2049

порт 32771 выбран случайным образом (механизм NFS)

Как настроить фаервол читайте, напрмер, здесь

при загрузке и после обрыва связи сетевая папка будет монтироваться автоматически.

если при загрузке не было сети, смонтрирует ли после того как сеть появится?

Изображение пользователя picaro.

Нет, так как инфа читается из fstab и монтирование выполняется при старте системы.
Возможно стоит попробовать после появления сети выполнить команду mount -a.
Вот такая же проблема, только там отсутствие сети связано с wifi.

Изображение пользователя Soi-Fong.

Спасибо за статью. Только вот монтирование происходит до установления соединения, что делает длительную паузу при загрузке. Можно ли как-нибудь указать, чтобы монтирование происходило только при поднятом определенном интерфейсе?

Изображение пользователя vimax.

Мда..в винде попроще шарить папки!
Скажите мне почему не работает такая опция в кубунту?
Захожу в свою /Home/virus, нажимаю правой кнопкой на папке Docs>Свойства>Сделать общим
На приглашение ввести пароль рута - ввожу! Нажимаю ОК. И что дальше? никаких изменений не вижу.
Папка теперь расшарена как НФС ресурс?или САМБА? С другой машины шары не видно!
И еще. Почему не меняется значок папки? если расшаривать через smb.conf, то значок меняется.

хотел бы я всё это попробовать, да только у меня и так всё почему-то работает. Ubuntu видит шары винды (без mount). Винда видит шары Ubuntu - сразу с загрузки последней. Настраивал в графики, окно настройки попросило закачать покеты samba. И всё.

Изображение пользователя vimax.

У меня не просит установить сервер самбы. После sudo apt-get install samba ситуация не изменяется.
На двух компьютерах пробовал уже. И до и после обновлений папка не шарится. Kubuntu 8.10.
Может я какую-то элементарную вещь не делаю? Может пользователя в какую-то доп.группу надо внести?

имаге

Изображение пользователя dm.

Попробуй расшарить папку с НЕ русским названием.

Изображение пользователя vimax.

к сожалению не помогло

sudo apt-get install kdenetwork-filesharing и перезапустись.

Изображение пользователя vimax.

О спаситель . Спасибо большое! А то уж я совсем расстроился! Система по умолчанию ставится с пунктом ОБЩИЕ ФАЙЛЫ, а он не работает! Кстати этот косяк не убрался и вплоть до 9.10.
Сейчас все ОК.

не помогло. Жму кнопку, появляется диалог ввода пароля, ввожу. И . ничего не происходит.

UPD: заработало! просто долго запускалось. Но все равно неудобно как-то. Я уже выбрал папку для расшаривания, заперся в свойства, нажал кнопку. И потом опять надо жать add и выбирать папку.

Изображение пользователя vimax.

Не забудьте про это:
чтобы можно было шарить для винды необходимо установить samba (по умолчанию в кубунте стоит только клиент для подключения к таким шарам)
чтобы можно было шарить NFS - установить nfs-kernel-server (по умолчанию тоже стоит только клиент)

всё шариться нормально, просто сам процесс не отлажен.

Такая же проблема. Выйдет 9.04 поставлю и никаких больше unsupported updates.

Изображение пользователя vimax.

у меня такая ерунда и в 8.10 и в 9.04 alpha*
upd:так же и в 9.04 beta*
upd:так же и в 9.04 :(
upd:так же и в 9.10 :(

Извините за вопрос чайника.
Кто-нибудь использовал sshfs ?? Это тоже, что и NFS или ssh + NFS
Уважаемый dm!
По вышеприведённой Вами инструкции можно ли использовать sshfs ?
Руслан

Изображение пользователя salt.

Изображение пользователя Zodiac.

Спасибо за подробное объяснение!А может кто-нибудь подсказать как быть с такой проблемой - есть домашний сервак, на нём рторент, для забора скачанного на ноут примонтировал нфс, но скорость копирования около 1Мб/С, т.е. даже чуть меньше чем просто скачка с инета у меня!У обоих компов внешние ip, т.е. такое впечатление что трафик гонится через как минимум шлюз провайдера. Можно ли это обойти както?

Изображение пользователя picaro.

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

Изображение пользователя Zodiac.

Эээ..)Ну это то в общем ясно, вопрос в том как это сделать!)На ноуте и на серваке по одной сетевухе ведь!То же и CS касается - есть ещё одна десктопная машина, тоже с внешним ip - пров выделяет до 3 адресов на один договор - вот и выхоит игра через инет а не по локалке!Все компы воткнуты в свич в квартире, в него же инет вхоит. Тут наверно без роутера никак, чтоб пакетзавернутьна на локаль..

Изображение пользователя picaro.

Можно настроить роутер на одной из локальных машин, а остальным скормить локальный адрес в качестве шлюза. Тогда весь трафик будет идти через эту машину. Или купить железный роутер.

Изображение пользователя Zodiac.

Да так раньше и было, всё через сервер, надеялся со сменой прова и появлением внешних айпи на каждую тачку уйду от этой проблемы, а этой хрени со шлюзом то и не учёл)

Если ваши машины с белыми IP общаются с провом через свич - это очень хорошо и дополнительная железка нужна только в плане безопасности. Чтобы никто не лез извне.

Шлюз по умолчанию используется только если в таблице маршрутизации не найден более удачный маршрут. Попробуйте так route add -net 192.57.66.0 netmask 255.255.255.0 dev eth0

Здравствуйте! Сделал всё как написано, но к серверу подключиться не удается, ошибка: "Ошибка доступа, авторизация 192.168.0.1 не поддерживается". На самом сервере расшаренная папка обозначается значком (что, мол, расшарено). Куда дальше глядеть? Где этот доступ разрешать?
Сервер: Kubuntu 8.10, KDE 4.1
Клиент: Debian 5.01, KDE 3.5
Компьютеры пингуются, VNC от Клиента к Серверу работает (немного странно, но все же работает)

Изображение пользователя vap.

3. Убедитесь в том, что процесс /etc/mountd запущен. Он за-
пускается из файла загрузки NFS, имеющего имя /etc/nfs.

У меня нет /etc/nfs и /etc/mountd видемо не запущен

Изображение пользователя vap.

(rw,no_root_squash,async,subtree_check)"
rw - это же значит расшарить на чтение и запись? У меня почемуто не дает записывать с клиента.
subtree_check - что это? такой ответ это он ругается или так и надо?
exportfs: No options for /home/vap/Media 10.106.146.2/255.255.255.0: suggest 10.106.146.2/255.255.255.0(sync) to avoid warning
exportfs: /etc/exports [3]: Neither 'subtree_check' or 'no_subtree_check' specified for export "10.106.146.2/255.255.255.0:/home/vap/Media".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x

exportfs: No host name given with /home/vap/Media (rw,no_root_squash,async,subtree_check), suggest *(rw,no_root_squash,async,subtree_check) to avoid warning
exportfs: No options for /home/vap/QT 10.106.146.2/255.255.255.0: suggest 10.106.146.2/255.255.255.0(sync) to avoid warning

Изображение пользователя vap.

Изображение пользователя vimax.

Вы все нужные программы поставили? и на клиенте и на сервере? Если делать все как в посте автора - все работает

Изображение пользователя vap.

Наконецто мне настроили расшаривание с возможностью запись файлов. Оказывается если здесь
/home/user/Share 10.0.0.0/255.255.255.0(rw,no_root_squash,async,subtree_check)
прописать конкретный IP 10.0.0.2 то маска должна быть 255.255.255.255

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