Skip to main content

[Ubuntu] Configuring NFS Server and NFS Client sides

Updated over 2 months ago

Introduction

NFS (Network File System) is used for sharing files and folders between Linux servers. It allows you to mount your local file systems over a network and remote hosts to interact with them as if they were mounted locally on the same server. In this tutorial, you will learn how to set up NFS on a Linux-based server.

Installing and Configuring

1. First, you have to configure the NFS server

1.1. Install NFS packages with the following commands:

apt-get update
apt-get install nfs-kernel-server

1.2 Start the service and check its status:

service nfs-kernel-server start
service nfs-kernel-server status

1.3 We would recommend making the configuration so that this service would start after a reboot:

nano /etc/rc.local

Add this line at the bottom:

/etc/init.d/nfs-kernel-server restart

1.4 Create a directory you want to share and edit the following file to set rules for sharing:

mkdir /home/test
nano /etc/exports

Paste this line, which sets the specific client to be able to access the directory, with certain rules:

/home/test       NFS_client_IP_or_hostname(rw,sync,no_root_squash,no_subtree_check)

Note.
​
Here are some possible rules you can configure:

rw - the filesystem is writable;
ro - the filesystem is exported read-only; this is the default;
root_squash - map root UID/GID to anonymous UID/GID (nobody/nogroup); this is the default;
all_squash - map all UIDs/GIDs to anonymous UID/GID (nobody/nogroup);
no_root_squash - do not map root (nor any other) UID/GID to anonymous UID/GID (nobody/nogroup);
sync - reply clients after data have been stored to stable storage; this is the default;
async - reply clients before data have been stored to stable storage; improves performance, but should only be used on ro filesystems

Export directory(-ies) with command:

exportfs -a

2. Steps to configure the NFS Client side:

apt-get update
apt-get install nfs-common

2.1. Create a directory and mount the remotely shared directory on it:

mkdir -p /nfs/home
mount NFS_server_IP_or_hostname:/home/test /nfs/home

NFS configuration is done. You should now be able to see the mounted directory:

df -h

Results should be like this:

Did this answer your question?