NFS сервер · 4 min read · Dec 26, 2025

Настройка NFS-сервера и клиента на Debian Wheezy

Этот гид объясняет, как настроить NFS-сервер и NFS-клиент на Debian Wheezy. NFS означает Сетевую файловую систему; через NFS клиент может получить доступ (читать, записывать) к удаленной общей папке на NFS-сервере так, как будто она находится на локальном жестком диске. В этом учебном пособии я покажу вам два различных экспорта NFS: экспорт клиентского каталога, который хранит файлы как пользователь nobody/nogroup без сохранения прав файловой системы, и экспорт каталога /var/www, который сохраняет права и владельца файлов, как требуется в настройке хостинг-сервера.

1 Предварительная заметка

Я использую здесь две системы Debian Wheezy:

  • NFS-сервер: server.example.com, IP-адрес: 192.168.0.100
  • NFS-клиент: client.example.com, IP-адрес: 192.168.0.101

2 Установка NFS

сервер:

На NFS-сервере мы выполняем:

apt-get install nfs-kernel-server nfs-common

Затем мы создаем системные ссылки для запуска NFS-сервера и запускаем его:

клиент:

На клиенте мы можем установить NFS следующим образом (это на самом деле то же самое, что и на сервере):

apt-get install nfs-common

3 Экспорт каталогов на сервере

сервер:

Я хотел бы сделать каталоги /home/client1 и /var/www доступными для клиента, чтобы показать два различных режима доступа к NFS-серверу. Каталог /home/client1 делится в стандартном режиме, поэтому все файлы, записанные в этот каталог, хранятся как пользователь nobody и группа nogroup. Для каталога /var/www я использую опцию no_root_squash, которая инструктирует сервер nfs сохранять права и владельца файлов. Это, например, требуется, когда вы хотите экспортировать каталог /var/www веб-сервера, управляемого ISPConfig 3.

Сначала я создам каталог /home/client1

mkdir /home/client1  
chown nobody:nogroup /home/client1  
chmod 755 /home/client1

Каталог /var/www, скорее всего, уже существует на вашем сервере. Если нет, то создайте его:

mkdir /var/www  
chown root:root /var/www  
chmod 755 /var/www

Теперь мы должны изменить /etc/exports, где мы “экспортируем” наши NFS-общие папки. Мы указываем /home/client1 и /var/www как NFS-общие папки и говорим NFS делать доступы к /home/client1 как пользователь nobody (чтобы узнать больше о /etc/exports, его формате и доступных опциях, взгляните на

man 5 exports

)

vi /etc/exports
/home/client1           192.168.0.101(rw,sync,no_subtree_check)
/var/www        192.168.0.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

(Опция no_root_squash делает так, что /var/www будет доступен как root.)

Чтобы применить изменения в /etc/exports, мы перезапускаем сервер nfs ядра

/etc/init.d/nfs-kernel-server restart

4 Монтирование NFS-общих папок на клиенте

клиент:

Сначала мы создаем каталоги, где мы хотим смонтировать NFS-общие папки, например:

mkdir -p /mnt/nfs/home/client1  
mkdir -p /var/www

Если каталог /var/www уже существует на вашем сервере, то остановите apache, переименуйте каталог и создайте новый пустой каталог в качестве точки монтирования

/etc/init.d/apache2 stop  
mv /var/www /var/www_bak  
mkdir -p /var/www

После этого мы можем смонтировать их следующим образом:

mount 192.168.0.100:/home/client1 /mnt/nfs/home/client1  
mount 192.168.0.100:/var/www /var/www

Теперь вы должны увидеть две NFS-общие папки в выводах

df -h
[root@client ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                  9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

5 Тестирование

На клиенте вы теперь можете попробовать создать тестовые файлы на NFS-общих папках:

клиент:

touch /mnt/nfs/home/client1/test.txt  
touch /var/www/test.txt

Теперь перейдите на сервер и проверьте, можете ли вы увидеть оба тестовых файла:

сервер:

ls -l /home/client1/
[root@server ~]# ls -l /home/client1  
total 0  
-rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt  
[root@server ~]#
ls -l /var/nfs
[root@server ~]# ls -l /var/www  
total 0  
-rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt  
[root@server ~]#

(Обратите внимание на разные права собственности тестовых файлов: NFS-общая папка /home/client1 доступна как nobody / nogroup и принадлежит nobody / nogroup; общая папка /var/www доступна как root, поэтому /var/www/test.txt принадлежит пользователю и группе root.)

6 Монтирование NFS-общих папок при загрузке

Вместо того чтобы монтировать NFS-общие папки вручную на клиенте, вы можете изменить /etc/fstab, чтобы NFS-общие папки монтировались автоматически при загрузке клиента.

клиент:

Откройте /etc/fstab и добавьте следующие строки:

vi /etc/fstab
[...]  
192.168.0.100:/home/client1  /mnt/nfs/home/client1   nfs      rw,sync,hard,intr  0     0  
192.168.0.100:/var/www  /var/www   nfs      rw,sync,hard,intr  0     0

Вместо rw,sync,hard,intr вы можете использовать различные параметры монтирования. Чтобы узнать больше о доступных опциях, взгляните на

man nfs

Чтобы проверить, работает ли ваш измененный /etc/fstab, размонтируйте общие папки и выполните mount -a:

umount /mnt/nfs/home/client1  
umount /var/www  
mount -a

Теперь вы должны увидеть две NFS-общие папки в выводах

df -h
[root@client ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                  9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

7 Благодарности

Этот учебник основан на учебнике по NFS-серверу Centos от Фалко Тимме.

8 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.