Hello, friends. File sharing on the Internet or a local network is one of the most important services there is. So, today I will show you how to install an NFS server on Ubuntu 20.04.
Before we start, we have to clarify that I will use two nodes for this post. The Server has Ubuntu 20.04 whose IP address is
18.104.22.168 and a client computer with the following IP address
So, let’s get started.
On the computer that we will use as a server, you have to install the following package
sudo apt update sudo apt install nfs-kernel-server Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: keyutils libevent-2.1-7 libnfsidmap2 libtirpc-common libtirpc3 nfs-common rpcbind Suggested packages: open-iscsi watchdog The following NEW packages will be installed: keyutils libevent-2.1-7 libnfsidmap2 libtirpc-common libtirpc3 nfs-common nfs-kernel-server rpcbind 0 upgraded, 8 newly installed, 0 to remove and 18 not upgraded. Need to get 641 kB of archives. After this operation, 2,342 kB of additional disk space will be used. Do you want to continue? [Y/n]
By default, Ubuntu 20.04 uses the latest version of the protocol and disables version 2. You can check this by running the following command.
sudo cat /proc/fs/nfsd/versions -2 +3 +4 +4.1 +4.2
The main NFS configuration file is
/etc/default/nfs-kernel-server where you can make the relevant settings. Now, the default configuration is sufficient for most cases so we will not edit it.
Now we need to create the folders we are going to share. The first thing is that in this case, the NFS root directory will be
/srv/nfs/ but it can be whatever you want.
Within this directory, I will create two more. One dedicated to data called
data and one dedicated to documents called
documents. Remember that this is an example and you have to adapt the fields to your own.
sudo mkdir -p /srv/nfs/data sudo mkdir -p /srv/nfs/documents
Normally you would associate a system directory with these paths. This is done for security reasons because it makes it impossible for a client user to have permission and access to system folders. In this case,
data will be associated with
/opt/documents. Both folders must be created.
sudo mount --bind /opt/data /srv/nfs/data sudo mount --bind /opt/documents /srv/nfs/documents
Also, it is recommended to have this automatically mounted on system startup.
To do this, edit the file
sudo nano /etc/fstab
And add the following:
/opt/data /srv/nfs/data none bind 0 0 0 /opt/documents /srv/nfs/documents none bind 0 0 0
Save the changes and close the editor.
Export the file system
It is now necessary to define the file systems to be exported and the clients that will be allowed to access those resources. To do this, you need to edit the file
sudo nano /etc/exports
And add the following:
/srv/nfs 22.214.171.124(rw,sync,no_subtree_check,crossmnt,fsid=0) /srv/nfs/data 126.96.36.199(rw,sync,no_subtree_check) /srv/nfs/documents 188.8.131.52(rw,sync,no_subtree_check)
Remember to replace the IP address with your client’s IP address. Each of the options is to define the behavior in the folder.
fsid=0 option, which defines the NFS root directory. Only the IP address
184.108.40.206 is allowed access, although you can also give permissions to members of a subnet.
crossmntes needed to share directories that are subdirectories of an exported directory.
The second and third lines grant read and write permissions to the client. The
sync option tells NFS to write changes to disk first.
So, since there are a lot of options, you can look them all up with the
man exports command.
Apply the changes, by running
sudo exportfs -ar
So, on the server we are ready. Now let’s go to the client.
Now it is time to work on the client. In this case, I’m using Ubuntu 20.04 so to install the NFS client just run
sudo apt update sudo apt install nfs-common
Create the folders to mount the volume, for example:
sudo mkdir -p /data sudo mkdir -p /documents
And proceed to mount the remote volumes in the following way
sudo mount -t nfs -o vers=4 220.127.116.11:/data /data /data sudo mount -t nfs -o vers=4 18.104.22.168:/documents /documents
Replace the IP address with that of your server. You can also use the domain for this but it will have to be resolved.
If you run the
df -h command you can see how they have been mounted correctly
So, enjoy it.
In this post, you learned how to set up an NFS server on Ubuntu 20.04 quickly and easily. I hope you enjoyed it and got through it.