Nfs server start linux

Настройка NFS в Ubuntu

Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами. Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах. По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.

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

Немного теории

Как уже было сказано, NFS, это сетевая файловая система. Для работы необходим сервер, на котором будет размещена общая папка и клиенты, которые могут монтировать сетевую папку как обычный диск в системе. В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам. Программы будут видеть файлы как в обычной файловой системе и работать с ними как с локальными файлами, nfs возвращает только запрашиваемую часть файла, вместо файла целиком, поэтому эта файловая система будет отлично работать в системах с быстрым интернетом или в локальной сети.

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

Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:

sudo apt install nfs-kernel-server

Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:

nfs

Также важно проверить поддерживается ли NFS на уровне ядра:

cat /proc/filesystems | grep nfs

nfs1

Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:

Давайте еще добавим NFS в автозагрузку:

sudo systemctl enable nfs-server

На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:

sudo apt install nfs-common

Вот и все, дальше настройка NFS в Ubuntu.

Настройка сервера NFS в Ubuntu

Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:

Читайте также:  Smb conf настройка astra linux

Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:

адрес_папки клиент (опции)

Адрес папки — это та папка, которую нужно сделать доступной по сети. Клиент — ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:

  • rw — разрешить чтение и запись в этой папке;
  • ro — разрешить только чтение;
  • sync — отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию);
  • async — не блокировать подключения пока данные записываются на диск;
  • secure — использовать для соединения только порты ниже 1024;
  • insecure — использовать любые порты;
  • nohide — не скрывать поддиректории при, открытии доступа к нескольким директориям;
  • root_squash — подменять запросы от root на анонимные, используется по умолчанию;
  • no_root_squash — не подменять запросы от root на анонимные;
  • all_squash — превращать все запросы в анонимные;
  • subtree_check — проверять не пытается ли пользователь выйти за пределы экспортированной папки;
  • no_subtree_check — отключить проверку обращения к экспортированной папке, улучшает производительность, но снижает безопасность, можно использовать когда экспортируется раздел диска;
  • anonuid и anongid — указывает uid и gid для анонимного пользователя.

Например, для нашей папки, если вы хотите разрешить к ней подключаться только с определённого IP адреса, эта строка может выглядеть вот так:

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

Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.

Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.

Кроме того, обратите внимание на то, что все подключения от имени пользователя root считаются по умолчанию анонимными (nfsnobody), чтобы это отключить добавьте опцию монтирования no_root_squash, но это не безопасно, потому что любой root пользователь сможет получить доступ на запись ко всем файлам. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Для того чтобы все пользователи могли получить доступ ко всем файлам можно создать пользователя с UID 1001 и попросить NFS все запросы считать запросами от анонимного пользователя, а анонимному пользователю присвоить UID 1001. Это делается такими опциями:

Когда все будет настроено, останется только обновить таблицу экспорта NFS:

Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049:

sudo ufw allow 111
sudo ufw allow 2049

Читайте также:  Настроить сеть интернет в linux

Подключение NFS

Мы не будем подробно останавливаться на этом вопросе в сегодняшней статье. Это довольно большая тема, заслуживающая отдельной статьи. Но пару слов я все же скажу. Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:

sudo mount 127.0.0.1:/var/nfs/ /mnt/

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

Также мы посмотрите подключенные файловые системы с помощью df:

127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt

Чтобы отключить эту файловую систему достаточно использовать стандартный umount:

Выводы

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

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

Источник

Create an NFS server on Oracle Linux

The following tutorial provides step-by-step procedures to install and configure an NFS Server and mount the NFS shares. This tutorial is targeted at users of Oracle Linux 8 or later.

Objectives

What Do You Need?

Install the NFS Utilities Package on the Server Instance

Note: When using the free lab environment, see Oracle Linux Lab Basics for connection and other usage instructions.

  1. Open a terminal and connect to your server instance.
  2. Install the NFS utilities package.
sudo dnf install -y nfs-utils 

dnf package installed

This command will install the daemon and tools associated with the kernel NFS server.

  • Dnf will display the nfs-utils package and all dependencies and complete the installation.
  • If the package is already installed, then the following message will appear.
  • Create an NFS Share

    sudo fallocate -l 10MB /nfs-share/file1 sudo fallocate -l 10MB /nfs-share/file2 echo "This is a shared text file." | sudo tee /nfs-share/shared-text.txt > /dev/null 

    share file listing

    Change permissions on the files.

    sudo chmod -R 777 /nfs-share 
    echo "/nfs-share (rw)" | sudo tee -a /etc/exports > /dev/null 

    Start the NFS Server

    sudo firewall-cmd --permanent --zone=public --add-service=nfs sudo firewall-cmd --reload sudo firewall-cmd --list-all 
    • —permanent ensures the setting persists a system reboot.
    • —list-all will display the firewall settings and show that NFS traffic is allowed.

    firewall rules

    sudo systemctl enable --now nfs-server showmount -e 

    The showmount command displays the shares available using the NFS server. start servicenfs mounts

    Add Another Share

    sudo exportfs -i -o rw *:/nfs-share2 showmount -e 
    • -i causes the new share to ignore any values set in /etc/exports
    • -o passes the share options
    • * makes the share available to all clients

    nfs mounts

    sudo systemctl restart nfs-server showmount -e 

    nfs mounts

    Add the new share to /etc/exports to persist system restarts.

    echo "/nfs-share2 *(rw)" | sudo tee -a /etc/exports > /dev/null sudo exportfs -r showmount -e 
    • -r in exportfs refreshes the export list with any changes made to /etc/exports .

    Читайте также:  Xerox 3550 linux driver

    nfs mounts

    Install the NFS Utilities Package on the Client Instance

    1. Open a terminal and connect to your client instance.
    2. Install the NFS utilities package.
    sudo dnf install -y nfs-utils 

    dnf package installed

    This command will install the daemon and tools associated with the kernel NFS server.

  • Dnf will display the nfs-utils package and all dependencies and complete the installation.
  • If the package is already installed, then the following message will appear.
  • Mount the NFS Share

    1. Create a directory for the mount point. shell (client) sudo mkdir /nfs-mount
    2. Mount the share and get a directory listing.
    sudo mount :/nfs-share /nfs-mount ls -lh /nfs-mount 

    Where is the IP address of the server instance used earlier in this tutorial. share file listing

  • Test access to the NFS share. shell (client) echo «Hello World!» >> /nfs-mount/shared-text.txt cat /nfs-share/shared-text.txt show file change
  • Root Squashing

    Enabled by default in Oracle Linux 8, “root squashing” is a share-level configuration option that prevents a remote root user from having root access to the network file system. It is recommended to leave “root squashing” enabled for proper security, but the following steps will show available access when disabled.

      Try changing permissions on a file in the NFS share from the client instance.

    sudo chmod 766 /nfs-mount/shared-text.txt 

    sudo chmod fail

    The output shows permission denied even though the command uses sudo .
    Disable root_squash on the share using the server instance.

    echo "/nfs-share (rw,no_root_squash)" | sudo tee /etc/exports > /dev/null 
    sudo systemctl restart nfs-server 
    sudo chmod 766 /nfs-mount/shared-text.txt ls -lh /nfs-mount 

    sudo chmod success

    The output shows the execute permissions removed from the group and other columns.

    Mount Share Using fstab

    To have the mounted share available after a reboot of the client instance, add an entry to the fstab file.

    sudo umount /nfs-mount ls -lh /nfs-mount 

    unmount

    The ls -lh shows the directory is empty and therefore not mounted.
    Update the fstab file.

    echo ":/nfs-share /nfs-mount nfs rw 0 0" | sudo tee -a /etc/fstab > /dev/null tail -n5 /etc/fstab 

    show fstab

    Replace with the IP address of the server instance. tail -n5 displays the last 5 lines in the /etc/fstab file.
    Mount and verify the share is accessible.

    sudo mount -a ls -lh /nfs-mount 

    share file listing

    More Learning Resources

    Explore other labs on docs.oracle.com/learn or access more free learning content on the Oracle Learning YouTube channel. Additionally, visit education.oracle.com/learning-explorer to become an Oracle Learning Explorer.

    For product documentation, visit Oracle Help Center.

    Create an NFS server on Oracle Linux

    Copyright © 2021, Oracle and/or its affiliates.

    Источник

    Оцените статью
    Adblock
    detector