NFS (Network File System) is the popular distributed filesystem protocol. It’s better for users to mount remote folders on their local servers. Here, we will explain step by step how to create NFS server and how to mount the shared directories from the NFS clients.
My test systems are CentOS 7.4 with the following info:
NFS Server = 192.168.178.31
NFS Client = 192.168.178.32
[root@osradar ~]# uname -a Linux osradar 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [root@osradar ~]# cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) [root@osradar ~]#
I-Install NFS Utils
“nfs-utils” includes all the needed services to build your NFS server. Let’s install it with the following commands:
yum install nfs-utils Installed: nfs-utils.x86_64 1:1.3.0-0.48.el7 Dependency Installed: gssproxy.x86_64 0:0.7.0-4.el7 keyutils.x86_64 0:1.5.8-3.el7 libbasicobjects.x86_64 0:0.1.1-27.el7 libcollection.x86_64 0:0.6.2-27.el7 libevent.x86_64 0:2.0.21-4.el7 libini_config.x86_64 0:1.3.0-27.el7 libnfsidmap.x86_64 0:0.25-17.el7 libpath_utils.x86_64 0:0.2.1-27.el7 libref_array.x86_64 0:0.1.5-27.el7 libtirpc.x86_64 0:0.2.4-0.10.el7 libverto-libevent.x86_64 0:0.2.5-4.el7 quota.x86_64 1:4.01-14.el7 quota-nls.noarch 1:4.01-14.el7 rpcbind.x86_64 0:0.2.0-42.el7 tcp_wrappers.x86_64 0:7.6-77.el7 Complete! [root@osradar ~]#
Now, create the directory for NFS service to share:
mkdir /var/nfs_share
Change the permissions of the shared folder:
chmod -R 755 /var/nfs_share chown nfsnobody:nfsnobody /var/nfs_share
Let’s enable and start the services to make “nfs_share” accessible later and make them bootable on the next reboot.
systemctl enable rpcbind systemctl enable nfs-server systemctl enable nfs-lock systemctl enable nfs-idmap systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap
We will configure NFS directory over the network with the next step:
vi /etc/exports
and add
/var/nfs_share 192.168.178.32(rw,sync,no_root_squash,no_all_squash)
192.168.178.32 is the IP of NFS client machine. If you wish to all local network, use 192.168.178.0/24 or “*” to allow connection from everywhere.
Restart the NFS service:
systemctl restart nfs-server
Here, add the rules below to allow the connection through the NFS service:
firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --permanent --zone=public --add-service=mountd firewall-cmd --permanent --zone=public --add-service=rpc-bind firewall-cmd --reload
Before installing NFS clients, you need to share the folder.
[root@osradar ~]# exportfs /var/nfs_share 192.168.178.32
II-Install NFS Client
Run the same command to install all the needed NFS packages.
yum install nfs-utils
Create the NFS directory mount points:
mkdir -p /mnt/var/nfs_share
Next, we will mount the NFS shared directory on the client machine as shown below:
[root@localhost~]# mount -t nfs 192.168.178.31:/var/nfs_share /mnt/var/nfs_share/ [root@localhost~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 17G 1.2G 15G 8% / devtmpfs 486M 0 486M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6.6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/sda1 1014M 153M 862M 15% /boot tmpfs 100M 0 100M 0% /run/user/0 192.168.178.31:/var/nfs_share 17G 5.3G 11G 33% /mnt/var/nfs_share [root@localhost ~]#
We are connected. Now, you have the reading and writing access to the remote folder.
To mount this folder automatically on every boot, please add this line to “/etc/fstab”
192.168.178.31:/var/nfs_share /mnt/var/nfs_share nfs defaults 0 0
Enjoy! Please come back to us if you have any comment, question or suggestion.