GNU/Linux >> Znalost Linux >  >> Debian

Nastavení serveru a klienta NFS na Debian 9 (Stretch)

Tato příručka vysvětluje, jak nastavit server NFS a klienta NFS na Debianu 9. NFS je zkratka pro Network File System; prostřednictvím NFS může klient přistupovat (číst, zapisovat) ke vzdálené sdílené složce na serveru NFS, jako by byla na místním pevném disku. V tomto tutoriálu vám ukážu dva různé exporty NFS, export adresáře klienta, který ukládá soubory jako uživatel nikdo/nogroup bez zachování oprávnění souborového systému, a export adresáře /var/www, který zachovává oprávnění a vlastnictví souborů, jako vyžadováno při nastavení hostitelského serveru.

1 předběžná poznámka

Zde používám dva systémy Debian Wheezy:

  • Server NFS:server.example.com, adresa IP:192.168.1.100
  • Klient NFS:client.example.com, IP adresa:192.168.1.101

2 Instalace NFS

Aktualizací seznamů balíčků a instalací čekajících aktualizací na oba servery se ujistěte, že je server aktuální

apt-get update
apt-get upgrade

Poté pokračujte v instalaci serveru NFS a klienta.

server:

Na serveru NFS spustíme:

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

Poté vytvoříme odkazy pro spuštění systému pro server NFS a spustíme jej:

klient:

Na klienta můžeme NFS nainstalovat následovně (je to vlastně stejné jako na serveru):

apt-get install nfs-common

3 Export adresářů na serveru

server:

Chtěl bych zpřístupnit adresáře /home/client1 a /var/www klientovi, aby ukázaly dva různé přístupové režimy serveru NFS. Adresář /home/client1 je sdílen ve standardním režimu, takže všechny soubory zapsané do tohoto adresáře jsou uloženy jako uživatel nikdo a skupina nogroup. Pro adresář /var/www používám volbu no_root_squash, která dává serveru NFS pokyn k zachování oprávnění a vlastnictví souborů. Jedná se např. vyžadováno, když chcete exportovat adresář /var/www webového serveru spravovaného pomocí ISPConfig 3

Nejprve vytvořím adresář /home/client1

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

Adresář /var/www pravděpodobně existuje na vašem serveru. Pokud ne, vytvořte jej:

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

Nyní musíme upravit /etc/exports, kam „exportujeme“ naše sdílené složky NFS. Zadáváme /home/client1 a /var/www jako sdílení NFS a říkáme NFS, aby umožnil přístup k /home/client1 jako uživatel nikdo (chcete-li se dozvědět více o /etc/exports, jeho formátu a dostupných možnostech, podívejte se na

man 5 exports

)

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

(Volba no_root_squash způsobí, že k /var/www bude přistupovat jako root.)

Abychom použili změny v /etc/exports, restartujeme kernel nfs server

service nfs-kernel-server restart

4 Připojení sdílených složek NFS na klienta

klient:

Nejprve vytvoříme adresáře, kam chceme připojit sdílené složky NFS, např.:

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

Pokud adresář /var/www již na vašem serveru existuje, zastavte apache, přejmenujte adresář a vytvořte nový prázdný adresář jako bod připojení

service apache2 stop
mv /var/www /var/www_bak
mkdir -p /var/www

Poté je můžeme připojit následovně:

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

Nyní byste měli vidět dvě sdílení NFS ve výstupech

df -h
[email protected]:/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
udev 990M 0 990M 0% /dev
tmpfs 201M 6.0M 195M 3% /run
/dev/sda1 28G 1.2G 25G 5% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 200M 0 200M 0% /run/user/1000
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www
[email protected]:/tmp#

a

mount
[email protected]:/tmp# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
[email protected]:/tmp#

5 Testování

Na klientovi se nyní můžete pokusit vytvořit testovací soubory na sdílených složkách NFS:

klient:

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

Nyní přejděte na server a zkontrolujte, zda vidíte oba testovací soubory:

server:

ls -l /home/client1/
[email protected]:/tmp# ls -l /home/client1/
total 0
-rw-r--r-- 1 nobody nogroup 0 Nov 16 10:52 test.txt
[email protected]:/tmp#
ls -l /var/www
[email protected]:/tmp# ls -l /var/www
total 0
-rw-r--r-- 1 root root 0 Nov 16 10:52 test.txt
[email protected]:/tmp#

(Všimněte si prosím různých vlastnictví testovacích souborů:ke sdílené složce /home/client1 NFS se přistupuje jako nikdo / nogroup a je vlastněna nikdo / nogroup; ke sdílené složce /var/www se přistupuje jako root, tedy /var/www/test .txt je ve vlastnictví uživatele a skupiny root.)

6 Připojení sdílených složek NFS při spouštění

Namísto ručního připojování sdílených složek NFS na klienta můžete upravit /etc/fstab tak, aby se sdílené složky NFS připojily automaticky při spuštění klienta.

klient:

Otevřete /etc/fstab a připojte následující řádky:

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

Místo rw,sync,hard,intr můžete použít různé možnosti připojení. Chcete-li se dozvědět více o dostupných možnostech, podívejte se na

man nfs

Chcete-li otestovat, zda váš upravený /etc/fstab funguje, odpojte sdílené složky a spusťte příkaz mount -a:

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

Nyní byste měli vidět dvě sdílení NFS ve výstupech

df -h
[email protected]:/# df -h
Filesystem Size Used Avail Use% Mounted on
udev 990M 0 990M 0% /dev
tmpfs 201M 6.0M 195M 3% /run
/dev/sda1 28G 1.2G 25G 5% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 200M 0 200M 0% /run/user/1000
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www
[email protected]:/#

a

mount
[email protected]:/# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)
[email protected]:/#

7 kreditů

Tento výukový program je založen na výukovém programu Centos NFS Server od společnosti Falko Timme.

  • Linux NFS:http://nfs.sourceforge.net/
  • Debian:http://www.debian.org/

Debian
  1. Jak nastavit NTP server a klienta na Debian 9 Stretch Linux

  2. Instalace serveru a klienta NFS na CentOS 7

  3. Nastavení serveru a klienta NFS na CentOS 6.3

  1. Nastavení serveru a klienta NFS v systému Scientific Linux 6.3

  2. Nastavení serveru a klienta NFS na CentOS 7.2

  3. Naučte se NFS prostřednictvím konfigurace serveru a klienta

  1. Nastavení serveru a klienta NFS na Debian Wheezy

  2. Nastavení serveru a klienta NFS na OpenSUSE 12.2

  3. Jak nastavit server a klienta NFS na Ubuntu 20.04