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

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

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

Версия 1.0
Автор: Фалко Тимме

Этот гид объясняет, как настроить NFS-сервер и NFS-клиент на Debian Lenny. NFS означает Сетевую файловую систему; через NFS клиент может получить доступ (читать, записывать) к удаленной общей папке на NFS-сервере так, как если бы она находилась на локальном жестком диске.

Я не даю никаких гарантий, что это сработает для вас!

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

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

  • 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 portmap

клиент:

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

apt-get install nfs-common portmap

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

сервер:

Я хотел бы сделать каталоги /home и /var/nfs доступными для клиента; поэтому мы должны “экспортировать” их на сервере.

Когда клиент получает доступ к NFS-общей папке, это обычно происходит от имени пользователя nobody. Обычно каталог /home не принадлежит nobody (и я не рекомендую менять его владельца на nobody!), и поскольку мы хотим читать и писать в /home, мы говорим NFS, что доступы должны осуществляться от имени root (если бы наша общая папка /home была только для чтения, это не было бы необходимо). Каталог /var/nfs не существует, поэтому мы можем создать его и изменить его владельца на nobody и nogroup:

mkdir /var/nfs  
chown nobody:nogroup /var/nfs

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

man 5 exports

)

vi /etc/exports

| # /etc/exports: список контроля доступа для файловых систем, которые могут быть экспортированы # клиентам NFS. См. exports(5). # # Пример для NFSv2 и NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Пример для NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /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
client:~# df -h  
Файловая система         Размер Использовано Доступно Использовано% Смонтировано в  
/dev/mapper/vg0-root   19G  676M   17G   4%  /  
tmpfs                 253M     0  253M   0%  /lib/init/rw  
udev                   10M   80K   10M   1%  /dev  
tmpfs                 253M     0  253M   0%  /dev/shm  
/dev/sda1             471M   20M  427M   5%  /boot  
192.168.0.100:/home    29G  684M   27G   3%  /mnt/nfs/home  
192.168.0.100:/var/nfs  
                     29G  684M   27G   3%  /mnt/nfs/var/nfs  
client:~#

и

mount
client:~# mount  
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)  
client:~#

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

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

клиент:

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

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

сервер:

ls -l /home/
server:~# ls -l /home/  
total 4  
drwxr-xr-x 2 administrator administrator 4096 2009-02-16 13:18 administrator  
-rw-r--r-- 1 root          root              0 2009-03-12 17:08 test.txt  
server:~#
ls -l /var/nfs
server:~# ls -l /var/nfs  
total 0  
-rw-r--r-- 1 nobody nogroup 0 2009-03-12 17:08 test.txt  
server:~#

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

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
client:~# df -h  
Файловая система         Размер Использовано Доступно Использовано% Смонтировано в  
/dev/mapper/vg0-root   19G  676M   17G   4%  /  
tmpfs                 253M     0  253M   0%  /lib/init/rw  
udev                   10M   80K   10M   1%  /dev  
tmpfs                 253M     0  253M   0%  /dev/shm  
/dev/sda1             471M   20M  427M   5%  /boot  
192.168.0.100:/home    29G  684M   27G   3%  /mnt/nfs/home  
192.168.0.100:/var/nfs  
                     29G  684M   27G   3%  /mnt/nfs/var/nfs  
client:~#

и

mount
client:~# mount  
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.0.100)  
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.0.100)  
client:~#

7 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.