This is a simple guide to installing an NFS server on CentOS. The guide should work fine for other operating systems; also, change the yum commands for apt or the equivalent for your distribution. There may be some slight package name variations.
Server
First of all, let’s make a directory to share with the NFS server:
NOTE: Do not create an NFS share in a /home directory unless you know what you are doing; this will cause permissions and possible security issues
mkdir /srv/nfsshare1
Install the NFS server:
yum install nfs-utils
Now the server is installed, you need to update your permissions on the shared directory:
chmod -R 755 /srv/nfsshare1
chown nfsnobody:nfsnobody /srv/nfsshare1
Enable and start the required services for the NFS server:
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
Now we need to create an export file, which is used to tell the NFS server what to share. Let’s create a file named /etc/exports and enter the following into it:
/srv/nfsshare1 23.56.188.9(rw,sync,no_root_squash,no_all_squash)
NOTE: Replace 23.56.188.9 with the IP of your server; this one was just made up for the guide
Restart the NFS server:
systemctl restart nfs-server
You will need to enable ports 111 TCP and 2049 TCP+UDP in your iptabes/firewall.
Client
We need to install the nfs-utils package:
yum install nfs-utils
Let’s make a target directory/mount point:
mkdir /mnt/nfs1
Now to connect to the NFS server and mount the shared directory:
mount -t nfs 23.56.188.9:/srv/nfsshare1 /mnt/nfs1/
When you run ‘df -kh’ you will see the NFS directory mounted on your client.
You can add this as a permanent mount using the /etc/fstab file and adding the following line to the end of that file:
23.56.188.9:/srv/nfsshare1 /mnt/nfs1 nfs defaults 0 0