Ubuntu 22.04 NFS сървър

NFS или мрежова файлова система е протокол, който позволява на локалните потребители да имат достъп до отдалечени данни от множество дискове и директории по същия начин като локалния достъп. Протоколът NFS първоначално е разработен от Sun Microsystem и се превръща в стандартен протокол за споделяне на файлове в мрежа. Той се използва широко в централизирана среда, където потребителите или клиентските компютри ще могат да съхраняват и имат достъп до данни към един централизиран отдалечен сървър.
В повечето Linux системи NFS може да се инсталира и конфигурира лесно както за NFS сървър, така и клиент. Почти всяка Linux дистрибуция предоставя NFS пакети по подразбиране в собственото си хранилище. Името на пакета е различно, но конфигурацията все още е същата за почти Linux дистрибуции.
В тази статия ще научите как да инсталирате NFS сървър и клиент на Ubuntu 22.04 сървър. Ще научите също как да монтирате NFS споделената директория автоматично при зареждане на системата на клиентската машина.
Инсталиране и конфигуриране на NFS сървър
sudo apt install nfs-kernel-server
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
Създаваме директорията която ще споделим със съответните права.
sudo mkdir /mnt/host
sudo chown -R nobody:nogroup /mnt/host
sudo chmod 777 /mnt/host
Конфигурираме споделените директории в /etc/exports. Форматът е: директория клиент(опции)
sudo vim /etc/exports
/mnt/host 192.168.100.2(rw,sync,no_subtree_check,no_root_squash)
Основни опции в /etc/exports: rw — четене и запис; sync — синхронен запис (по-безопасен); no_subtree_check — по-добра производителност; no_root_squash — root на клиента има root права и на сървъра (внимавайте с тази опция в публични мрежи).
След това изпълнете следната команда, за да приложите и експортирате всички директории. Ако не получите никакво съобщение, значи вашите настройки са правилни.
sudo exportfs -a
Рестартираме сървъра за да влязат правилата в сила.
sudo systemctl restart nfs-server
sudo systemctl status nfs-server
С тази команда проверяваме сървъра какво споделя.
sudo exportfs -v
Разрешаваме порта на NFS в защитната стена (ако е активирана):
sudo ufw allow from 192.168.100.2 to any port nfs
sudo ufw reload
sudo ufw status
Инсталиране и конфигуриране на NFS клиент
На клиентската машина инсталираме nfs-common и монтираме споделената директория. Заменете 192.168.200.2 с IP адреса на NFS сървъра:
sudo apt install nfs-common
sudo mount 192.168.200.2:/mnt/host /var/backup
Проверете дали монтирането е успешно:
df -h | grep nfs
mount | grep nfs
Автоматично монтиране на директория чрез /etc/fstab
За да се монтира NFS директорията автоматично при всяко стартиране на системата, добавяме запис в /etc/fstab:
sudo umount /mnt/nfs1
sudo vim /etc/fstab
192.168.200.2:/mnt/host /var/backup nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
sudo mount -a
Заключение
NFS е бърз и лесен начин за споделяне на файлове между Linux машини в локална мрежа. Конфигурацията е минимална — инсталация, един ред в /etc/exports и запис в /etc/fstab на клиента. За production среди препоръчително е да се ограничи достъпът само до конкретни IP адреси и да се избягва no_root_squash в публични мрежи.