NFS сервер · 4 min read · Dec 06, 2025
Настройка NFS сервера и клиента на CentOS 6.3
Этот гид объясняет, как настроить NFS сервер и NFS клиент на CentOS 6.3. NFS означает Сетевую файловую систему; через NFS клиент может получить доступ (читать, записывать) к удаленной общей папке на NFS сервере так, как если бы она находилась на локальном жестком диске.
1 Предварительная заметка
Я использую две системы CentOS:
- NFS Сервер: server.example.com, IP адрес: 192.168.0.100
- NFS Клиент: client.example.com, IP адрес: 192.168.0.101
2 Установка NFS
сервер:
На NFS сервере мы выполняем:
yum install nfs-utils nfs-utils-libЗатем мы создаем системные ссылки для автозагрузки NFS сервера и запускаем его:
chkconfig --levels 235 nfs on
/etc/init.d/nfs startклиент:
На клиенте мы можем установить NFS следующим образом (это на самом деле то же самое, что и на сервере):
yum install nfs-utils nfs-utils-lib3 Экспортирование директорий на сервере
сервер:
Я хотел бы сделать директории /home и /var/nfs доступными для клиента; поэтому мы должны “экспортировать” их на сервере.
Когда клиент получает доступ к NFS общей папке, это обычно происходит от имени пользователя nobody. Обычно директория /home не принадлежит nobody (и я не рекомендую менять ее владельца на nobody!), и поскольку мы хотим читать и писать в /home, мы говорим NFS, что доступы должны осуществляться от имени root (если бы наша общая папка /home была только для чтения, это не было бы необходимо). Директория /var/nfs не существует, поэтому мы можем создать ее и изменить ее владельца; в моих тестах пользователь и группа nobody оба имели ID 99 на обеих моих тестовых системах CentOS (сервер и клиент); когда я пытался записать в /var/nfs с клиента NFS, я получил ошибку “Доступ запрещен”, поэтому я выполнил chmod 777 /var/nfs, чтобы каждый мог записывать в эту директорию; запись в /var/nfs с клиента тогда сработала, и на клиенте файлы, записанные в /var/nfs, казались принадлежащими пользователю и группе nobody, но на сервере они принадлежали (несуществующему) пользователю и группе с ID 65534; поэтому я изменил владельца /var/nfs на пользователя/группу 65534 на сервере и изменил права доступа /var/nfs обратно на 755, и вуаля, клиенту было разрешено записывать в /var/nfs:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfsТеперь мы должны изменить /etc/exports, где мы “экспортируем” наши NFS общие папки. Мы указываем /home и /var/nfs как NFS общие папки и говорим NFS делать доступы к /home от имени root (чтобы узнать больше о /etc/exports, его формате и доступных опциях, взгляните на
man 5 exports)
vi /etc/exports| /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(Опция no_root_squash позволяет получать доступ к /home от имени root.)
Каждый раз, когда мы изменяем /etc/exports, мы должны выполнить
exportfs -aпосле этого, чтобы изменения вступили в силу.
4 Монтирование NFS общих папок на клиенте
клиент:
Сначала мы создаем директории, в которые мы хотим смонтировать NFS общие папки, например:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfsПосле этого мы можем смонтировать их следующим образом:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfsТеперь вы должны увидеть две NFS общие папки в выводах
df -h[root@client ~]# df -h
Файловая система Размер Использовано Доступно Использовано% Смонтировано на
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[root@client ~]#и
mount[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#5 Тестирование
На клиенте вы теперь можете попробовать создать тестовые файлы на NFS общих папках:
клиент:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txtТеперь перейдите на сервер и проверьте, видите ли вы оба тестовых файла:
сервер:
ls -l /home/[root@server ~]# ls -l /home/
total 0
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
[root@server ~]#ls -l /var/nfs[root@server ~]# ls -l /var/nfs
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
[root@server ~]#(Обратите внимание на разные владельцы тестовых файлов: NFS общая папка /home доступна от имени root, поэтому /home/test.txt принадлежит root; общая папка /var/nfs доступна от имени nobody/65534, поэтому /var/nfs/test.txt принадлежит 65534.)
6 Монтирование NFS общих папок при загрузке
Вместо того чтобы монтировать NFS общие папки вручную на клиенте, вы можете изменить /etc/fstab, чтобы NFS общие папки монтировались автоматически при загрузке клиента.
клиент:
Откройте /etc/fstab и добавьте следующие строки:
vi /etc/fstab| [...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
Вместо rw,sync,hard,intr вы можете использовать другие параметры монтирования. Чтобы узнать больше о доступных опциях, взгляните на
man nfsЧтобы проверить, работает ли ваш измененный /etc/fstab, перезагрузите клиент:
rebootПосле перезагрузки вы должны найти две NFS общие папки в выводах
df -h[root@client ~]# df -h
Файловая система Размер Использовано Доступно Использовано% Смонтировано на
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[root@client ~]#и
mount[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#7 Ссылки
- Linux NFS: http://nfs.sourceforge.net/
- CentOS: http://www.centos.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.