GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configuración de un servidor y cliente NFS en CentOS 7.2

Esta guía explica cómo configurar un servidor NFS y un cliente NFS en CentOS 7. NFS significa Sistema de archivos de red; a través de NFS, un cliente puede acceder (leer, escribir) a un recurso compartido remoto en un servidor NFS como si estuviera en el disco duro local. Usaré un servidor mínimo CentOS 7.2 como base para la instalación.

1 nota preliminar

Estoy usando dos sistemas CentOS aquí:

  • Servidor NFS:server.example.com, dirección IP:192.168.1.100
  • Cliente NFS:client.example.com, dirección IP:192.168.1.101

Usaré el editor nano en este tutorial para editar archivos de configuración. Nano se puede instalar así.

yum -y install nano

2 Configurar el cortafuegos

Recomiendo tener un firewall instalado. Si aún no tiene firewalld instalado y desea usar un firewall, instálelo con estos comandos:

yum -y install firewalld

inicie el cortafuegos y permita que se inicie en el momento del arranque.

systemctl start firewalld.service
systemctl enable firewalld.service

A continuación, abra los puertos SSH y NFS para asegurarse de que podrá conectarse al servidor mediante SSH para fines administrativos y mediante NFS desde nuestro cliente NFS.

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

3 Instalación de NFS

servidor:

En el servidor NFS ejecutamos:

yum -y install nfs-utils

Luego habilite e inicie el servicio del servidor nfs.

systemctl enable nfs-server.service
systemctl start nfs-server.service

cliente:

En el cliente, podemos instalar NFS de la siguiente manera (en realidad es lo mismo que en el servidor):

yum install nfs-utils

4 Exportación de directorios en el servidor

servidor:

Me gustaría hacer que los directorios /home y /var/nfs sean accesibles para el cliente; por lo tanto, debemos "exportarlos" en el servidor.

Cuando un cliente accede a un recurso compartido NFS, normalmente ocurre como el usuario nfsnobody. Por lo general, el directorio /home no es propiedad de nfsnadie (¡y no recomiendo cambiar su propiedad a nfsnadie!), y porque queremos leer y escribir en /home, le decimos a NFS que los accesos deben hacerse como root (si nuestro recurso compartido /home fuera de solo lectura, esto no sería necesario). El directorio /var/nfs no existe, por lo que podemos crearlo y cambiar su propiedad al usuario y grupo nfsnobody.

mkdir /var/nfs
chown nfsnobody:nfsnobody /var/nfs
chmod 755 /var/nfs

Ahora debemos modificar /etc/exports donde "exportamos" nuestros recursos compartidos NFS. Especificamos /home y /var/nfs como recursos compartidos de NFS y le indicamos a NFS que realice accesos a /home como raíz (para obtener más información sobre /etc/exports, su formato y las opciones disponibles, eche un vistazo a

man 5 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.101(rw,sync,no_subtree_check)

(La opción no_root_squash hace que se acceda a /home como raíz).

Siempre que modifiquemos /etc/exports, debemos ejecutar:

exportfs -a

después, para hacer efectivos los cambios.

5 Montaje de los recursos compartidos de NFS en el cliente

cliente:

Primero creamos los directorios donde queremos montar los recursos compartidos de NFS, por ejemplo:

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

Posteriormente, podemos montarlos de la siguiente manera:

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

Ahora debería ver los dos recursos compartidos de NFS en los resultados de

df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

y

mount
[[email protected] ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/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/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
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)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 Pruebas

En el cliente, ahora puede intentar crear archivos de prueba en los recursos compartidos de NFS:

cliente:

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

Ahora ve al servidor y verifica si puedes ver ambos archivos de prueba:

servidor:

ls -l /home/
[[email protected] ~]# ls -l /home/
total 0
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[[email protected] ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(Tenga en cuenta las diferentes propiedades de los archivos de prueba:se accede al recurso compartido NFS /home como raíz, por lo tanto, /home/test.txt es propiedad del usuario raíz; se accede al recurso compartido /var/nfs como nadie/65534, por lo tanto, /var/ nfs/test.txt es propiedad de 65534.)

7 Montaje de recursos compartidos NFS en el momento del arranque

En lugar de montar los recursos compartidos de NFS manualmente en el cliente, puede modificar /etc/fstab para que los recursos compartidos de NFS se monten automáticamente cuando se inicie el cliente.

cliente:

Abra /etc/fstab y agregue las siguientes líneas:

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

En lugar de rw,sync,hard,intr, puede usar diferentes opciones de montaje. Para obtener más información sobre las opciones disponibles, consulte

man nfs

Para probar si su /etc/fstab modificado está funcionando, reinicie el cliente:

reboot

Después del reinicio, debería encontrar los dos recursos compartidos de NFS en las salidas de

df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

y

mount
[[email protected] ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/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/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
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)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8 Enlaces

  • NFS de Linux:http://nfs.sourceforge.net/
  • CentOS:http://www.centos.org/

Cent OS
  1. Configuración de un servidor y cliente NFS en Scientific Linux 6.3

  2. Instalación de servidor y cliente NFS en CentOS 7

  3. Configuración de un servidor y cliente NFS en Debian 9 (Stretch)

  4. Configuración de un servidor y cliente NFS en CentOS 6.3

  5. Configuración de un servidor y cliente NFS en OpenSUSE 12.2

Cómo instalar servidor y cliente NFS en Ubuntu

Cómo configurar el cliente y el servidor NFS en Linux

Instalar servidor y cliente NFS en Ubuntu

Cliente y servidor NIS

Configuración de un servidor OpenVPN con CentOS y Viscosity

Cómo configurar el servidor y el cliente NFS en CentOS 8