Подключение общего сетевого NFS каталога на Ubuntu 18.04
Монтируем сетевой каталог между 2-мя серверами.
Сервер - который предоставляет доступ к диску для хранения файлов.
Клиент - на котором будем монтировать сетевой каталог.
Примечание
Коллега подсказал несколько моментов по настройке NFS:
- Когда NFS сетапишь нужно обязательно(!) закрывать порты RPC (111 основной) фаерволлом.
Ферволлить нужно из-за этого: https://threatpost.com/reflection-ddos-attacks-abusing-rpc-portmapper/114318/ - Чтоб медленно не было, нужно обязательно включить async.
На обоих системах ставим:
sudo apt install nfs-kernel-server nfs-common
Настройка сервера
Посмотрите uid пользователя, который будет владельцем файлов:
cat /etc/passwd
На сервере разрешаем подключение к каталогу с определенных IP или сетей:
sudo nano /etc/exports
/data/cola 192.168.1.8(rw,insecure,nohide,all_squash,anonuid=1001,anongid=1001,no_subtree_check)
* Можно указать подсеть: 192.168.1.0/24.
Параметры:
rw Чтение+запись или ro (только чтение)
insecure Разрешить подключение с «небезопасного» диапазона портов >1024.
nohide Показывать смонтированные нелокальные ресурсы NFS.
all_squash Подразумевает, что все подключения будут выполнятся от анонимного пользователя.
anonuid=1000 Привязывает anon пользователя к «местному» пользователю.
anongid=1000 Привязывает анонимного пользователя к группе «местного» пользователя.
no_subtree_check Отменить контроль доступа к подкаталогам (быстрее).
no_root_squash Разрешаем пользователю root на клиентской машине доступ к разделяемой директории сервера.
sync Синхронный режим доступа. Не ждем ответ сервера при записи на диск. Это быстрее но менее надежно.
noaccess Запрещает доступ к указанной директории определенным хостам.
Перезапускаем сервис или только применяем изменения:
sudo /etc/init.d/nfs-kernel-server restart
sudo exportfs -a ## Применить конфиг /etc/exports
showmount -e ## Показать, какие NFS каталоги уже предоставляются (exports)
Настройка клиента
Проверим предоставляемые каталоги на сервере и на клиенте:
showmount -e 192.168.1.1 ## Экспортируемые каталоги сервера, можно смотреть на клиенте
showmount -a ## На клиенте, --all
* Утилита showmount иногда может не показывать смонтированный NFS каталог, если он отваливался.. не разобрался как исправить
Создаем каталог:
mkdir -p /media/data/cola
Монтируем вручную (проверьте uid пользователя):
sudo mount -t nfs -O uid=1000,iocharset=utf-8 192.168.1.1:/data/cola /media/data/cola
sudo umount /media/data/cola
Добавляем запись в /etc/fstab для автоматического монтирования:
sudo nano /etc/fstab
192.168.1.1:/data/cola /media/data/cola nfs user,rw 0 0
После добавления записи с правилами монтирования в /etc/fstab, в дальнейшем можно монтировать просто:
sudo mount /data/cola
* Добавьте noauto если не нужно монтировать каталог при старте системы.
* На ноуте nfs каталог лучше монтируйте через autofs. Иначе при отсутствии сети вы не сможете выключить ноут.
#nfs, #mount remote directory, #mount directory, #mount network directory