Linux посмотреть nfs ресурсы

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

Читайте также:  Firmware b43 installer astra linux

sudo apt install nfs-common

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

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

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

Дальше нас интересует настройка 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. Это делается такими опциями:

Читайте также:  Linux настройка работы через прокси

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

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

sudo ufw allow 111
sudo ufw allow 2049

Подключение 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.

Источник

Show NFS shares | List NFS mount points | List NFS clients Linux

In this article I will share multiple commands and method to cover below topics:

  • Show NFS Shares configured on the NFS Server
  • List NFS mount points on the NFS Clients
  • List NFS Clients which are connected to the NFS Server

Show NFS shares on NFS Server

Use showmount to show NFS shares

We can use showmount command to show NFS shares on the NFS Server using NFSv3 protocol.

showmount can be used to show NFS shares only if you are using rpcbind . With NFSv4, rpcbind is not used any more so showmount will throw clnt_create: RPC: Program not registered error on NFSv4 server configuration.

# showmount --exports Export list for server1.example.com: /nfs_shares * /priv_shares 192.168.0.0/255.255.255.0 /pub_shares 10.10.10.0/255.255.255.0

You can also give server details to show NFS shares for the respective server

# showmount --exports 10.10.10.2 Export list for 10.10.10.2: /nfs_shares * /priv_shares 192.168.0.0/255.255.255.0

Use exportfs to show NFS shares

You can use exportfs to show NFS shares with all NFS versions. exportfs -v will show the currently shared directory lists with all the permissions per directory

# exportfs -v /pub_shares 10.10.10.0/255.255.255.0(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) /priv_shares 192.168.0.0/255.255.255.0(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash) /nfs_shares (sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Use master export file /var/lib/nfs/etab to show NFS shares

We use /etc/exports or /etc/exports.d to add any NFS share. Next when we refresh the list of shares using exportfs -r or exportfs -a , the shares list from /etc/exports and /etc/exports.d is updated in the master exports table /var/lib/nfs/etab .
WARNING: You should not edit /var/lib/nfs/etab file manually. You must always update shares under /etc/exports and /etc/exports.d

Читайте также:  Обновление ядра astra linux common edition

Check the content of /var/lib/nfs/etab to show NFS shares list and all the applied permission details

# cat /var/lib/nfs/etab /priv_shares 192.168.0.0/255.255.255.0(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash) /pub_shares 10.10.10.0/255.255.255.0(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash) /nfs_shares *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)

List NFS mount points on NFS Clients

There are various commands and methods to list NFS mount points

Use mount to list NFS mount points

We can use mount command to list NFS mount points on nfs-client .

# mount | grep nfs 10.10.10.12:/nfs_shares on /mnt type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12)

Use nfsstat to list NFS mount points

Normally we use nfsstat to get the NFS mount point usage and statistics. But we can also use nfsstat to list currently used NFS mount points on nfs-client .

# nfsstat --mounts /mnt from 10.10.10.12:/nfs_shares Flags: rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12

Use /proc/mounts to list NFS mount points

We can also check the content of /proc/mounts to list NFS mount points on nfs-client

# cat /proc/mounts | grep nfs 10.10.10.12:/nfs_shares /mnt nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.16,local_lock=none,addr=10.10.10.12 0 0

List NFS clients connected to NFS Server

Use netstat to list NFS clients connected to NFS server

netstat is used to list the listening TCP and UDP ports. In the example I have one NFS client connected to the NFS server on 1018 port

# netstat | grep :nfs tcp 0 0 server1.example.com:nfs 10.10.10.16:1018 ESTABLISHED

Use ss to list NFS clients connected to NFS Server

ss id another utility to investigate sockets and is considered to be a replacement for netstat in future Linux releases. So we can also use ss command to list NFS clients connected to the NFS Server. Execute below command on the NFS server to list NFS clients.

# ss -a|grep :nfs udp UNCONN 0 0 *:nfs *:* udp UNCONN 0 0 [::]:nfs [::]:* tcp LISTEN 0 64 *:nfs *:* tcp ESTAB 0 0 10.10.10.2:nfs 10.10.10.16:1018 tcp LISTEN 0 64 [::]:nfs [::]:*

In this example we have one NFS Client currently connected to the NFS server on port 1018.

Lastly I hope the steps from the article to show nfs shares on nfs server, list nfs mount points on nfs clients and list nfs clients connected to nfs server on Linux was helpful. So, let me know your suggestions and feedback using the comment section.

Related Searches: check nfs mount, list nfs shares, showmount command in linux, nfs client list remote exports, list nfs mount points

Didn’t find what you were looking for? Perform a quick search across GoLinuxCloud

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can either use the comments section or contact me form.

Thank You for your support!!

Источник

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