Share on Social Media

In this tutorial, you will learn, how to configure NFS Server in Linux. #centlinux #linux #nfs

What is NFS Server? :

NFS (Network File System) is a distributed file system to share the files among network clients. NFS is developed by Sun Microsystem in 1984. NFS is de facto standard for sharing files in various distros of Linux. It has many features to securely share files among specific clients. It also supports Kerberos based authentication.

In this article, we will configure NFS Server in Linux and mount the shared directory at the Client.

System Specification:

We are using two Red Hat Enterprise Linux (RHEL) 7 servers. We will use one as the NFS Server and the other as the NFS Client.

Operating System:RHEL 7.0

Configure NFS Server in Linux:

Connect to using ssh as root user.

To configure NFS Server, we have to install nfs-utils package. Usually, this package is automatically installed during installation of Red Hat Enterprise Linux (RHEL) or CentOS 7. However, you can install it anytime using yum command.

# yum install -y nfs-utils

nfs-utils is already installed on our system.

Create a directory to share with other clients.

# mkdir /nfsshare
# chgrp nfsnobody /nfsshare/
# chmod g+w /nfsshare/

We have created a directory /nfsshare, changed its group to nfsnobody and w rights has been given to group. So, the anonymous users can create files on this shared directory.

Adjust SELinux type of the /nfsshare directory.

# semanage fcontext -a -t nfs_t "/nfsshare(/.*)?"
# restorecon -Rv /nfsshare/
restorecon reset /nfsshare context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:nfs_t:s0

If semanage command does not available on your system then install policycoreutils-python package.

Now export/share this directory to specific clients via NFS.

# echo '/nfsshare,sync)' >> /etc/exports
# exportfs -r

Enable and start the nfs-server service.

# systemctl start nfs-server ; systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/'

Allow nfs and other supplementary services through Linux firewall.

# firewall-cmd --permanent --add-service={mountd,nfs,rpc-bind}
# firewall-cmd --reload

NFS Server has been configured.

Configure NFS Client:

Connect to the and install nfs-utils package.

# yum install -y nfs-utils

Create a directory, to mount the shared directory from

# mkdir /mnt/nfsshare

Check the shared directories from

# showmount -e
Export list for

Persistently mount this shared directory by adding following entry in /etc/fstab.

# echo ' /mnt/nfsshare nfs defaults,_netdev 0 0' >> /etc/fstab
# mount -a

Check the status of mounted directory.

# mount | grep nfs on /mnt/nfsshare type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=,local_lock=none,addr=,_netdev)

Create a file in this shared directory, to verify the file permissions.

# cd /mnt/nfsshare/
# touch test1
# ls -al
total 0
drwxrwxr-x. 2 root      nfsnobody 18 Jul 31 07:32 .
drwxr-xr-x. 4 root      root      31 Jul 31 07:23 ..
-rw-r--r--. 1 nfsnobody nfsnobody  0 Jul 31 07:32 test1

We have successfully configure NFS server and client on CentOS/RHEL 7 and persistently mount the NFS share on that client.

However, this NFS share is not secured and anyone can write on this directory. For configuring a secure NFS share, you should read our article Configure a Kerberized NFS Server in RHEL 7.


In this tutorial, you have learned, how to configure NFS Server in Linux.

6 thoughts on “How to configure NFS Server in Linux”
  1. Hi Ahmer,
    Thanks for this post. It's much better than the official documents and most of other posts available in the internet.
    Could you please let me know how to create a nfs4 only share?
    Eg: share /share/nfs4 dir to a subnet in ro and to a whole domain in rw.

Leave a Reply