How to configure NFS on Linux

NFS or Network File System is used to share files of folders between Linux systems. With NFS, you can handle remote files and folders same like local files or folders.

In this tutorial, I will share you how you can install and configure NFS between two system.

Suppose, we have two system, and we want to share folders of one system to aonther. The hosing server's folder will be access by client.

First of all we need to install NFS package in both system. use the below command to install in Debian based distribution system.

sudo apt install nfs-kernel-server

For Fedora distribution use below command.

sudo dnf install nfs-utils

nfs-server is automatically starts when you install. Else you can start manually with below command.

sudo systemctl enable --now nfs-server

In this article, I want to share /home/nfs. So create directory from the Terminal.

mkdir /home/nfs

To share the files or folders in nfs, we need to add this folder in /etc/exports.

sudo nano /etc/exports

Add the below line at the end of file.

In the above line first is directory name which you want to share, is the ip address of client who can access the directory,
rw - permissionof read and write
sync - confirm the shared directory once the changes are committed
no_subtree_check - prevents the scanning the shared directory
no_root_squash – connect root user to the designated directory.

At the end load new configuration using below command.

sudo exportfs -a

So we have configured in the host server. Now we will going to configure client system.

For the client we need to install below package.

Debian based distribution system:

sudo apt install nfs-utils nfs-utils-lib

Fedora distribution system:

sudo dnf install nfs-utils nfs-utils-lib

When the package is installed, You need to mount NFS share folder of remove server into your local filesystem.

mount -t nfs /mnt/nfs

The above command will generate new folder /mnt/nfs in your local system.

The last option is to mount the remote directory permanently on your system, so it will remain even after client reboot the system.

For that you need to edit /etc/fstab file. Open the file in nano editor.

sudo nano /etc/fstab

And add the below line anywhere in the file. /mnt  nfs defaults 0 0

Save the file and lastly run the below command.

sudo mount -a

That's it. The local client can access, edit the folder of remote server.