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-lib

3 Экспортирование директорий на сервере

сервер:

Я хотел бы сделать директории /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 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.