How to Install NFS Server on Ubuntu

 

How to Install NFS Server on Ubuntu 20.04/21.04

NFS Introduction:

Originally developed by Sun’s Microsystems, NFS is an acronym for Network File System. It is a distributed protocol that allows a user on a client PC to access shared files from a remote server much the same way they would access files sitting locally on their PC. The NFS protocol provides a convenient way of sharing files across a Local Area Network (LAN). In this guide, we will walk you through the installation of the NFS Server on Ubuntu 20.04/2104 LTS (Focal Fossa). We will then demonstrate how you can access files on the server from a client system.

project link:http://linux-nfs.org/wiki/index.php/Main_Page

https://ubuntu.com/server/docs/service-nfs

Lab setup

NFS Server          IP:  192.168.88.86       Ubuntu 20.04

Client System       IP:  192.168.88.157       Ubuntu 21.04

Step 1) Install the NFS kernel Server package

To get started we are going to install the NFS kernel server package on Ubuntu which will, in effect, turn it into an NFS server. But first, let’s update the package list as shown.

$ sudo apt update

Thereafter, run the following command to install the NFS kernel server package.

$ sudo apt install nfs-kernel-server

This installs additional packages such as keyutils, nfs-common, rpcbind, and other dependencies required for the NFS server to function as expected.

You can verify if the nfs-server service is running as shown

$ sudo systemctl status nfs-server

 

Step 2) Create an NFS directory share

The next step will be to create an NFS directory share. This is the directory in which we will place files to be shared across the local area network. We will create it in the /mnt/ directory as shown below. Here, our NFS share directory is called /server_shares. Feel free to assign any name to your directory.

$ sudo mkdir /mnt/server_shares

Since we want all the files accessible to all clients, we will assign the following directory ownership and permissions.

$ sudo chown nobody:nogroup /mnt/server_shares

$ sudo chmod -R 777 /mnt/server_shares

These permissions are recursive and will apply to all the files and sub-directories that you will create.

Step 3) Grant the NFS Server access to clients

After creating the NFS directory share and assigning the required permissions and ownership, we need to allow client systems access to the NFS server. We will achieve this by editing the /etc/exports file which was created during the installation of the nfs-kernel-server package.

So, open the /etc/exports file.

$ sudo vi /etc/exports

To allow access to a single client, add the line below and replace the client-IP parameter with the client’s actual IP.

/mnt/server_shares client-IP(rw,sync,no_subtree_check)

To add more clients to the list, simply specify more lines as shown:

/mnt/server_shares client-IP-1(rw,sync,no_subtree_check)

/mnt/server_shares client-IP-2(rw,sync,no_subtree_check)

/mnt/server_shares client-IP-3(rw,sync,no_subtree_check)

Additionally, you can specify an entire subnet a shown.

/mnt/server_shares 192.168.88.0/24 (rw,sync,no_subtree_check)

This allows all clients in the 192.168.0.0 subnet access to the server. In our case, we will grant all clients access to the NFS server as shown

/mnt/server_shares 192.168.88.0/24(rw,sync,no_subtree_check)

 

Let’s briefly brush through the permissions and what they stand for.

  • rw  (Read and Write )
  • sync  (Write changes to disk before applying them)
  • no_subtree_check  (Avoid subtree checking )

Step 4 ) Export the shared directory

To export the directory and make it available, invoke the command:

$ sudo exportfs -a

Step 5) Configure the firewall rule for NFS Server  >> if you have enable firewall you may execute below commands

If you are behind a UFW firewall, you need to allow NFS traffic across the firewall using the syntax shown.

$ sudo ufw allow from [client-IP or client-Subnet-IP] to any port nfs

In our case, the command will appear as follows:

$ sudo ufw allow from 192.168.88.0/24 to any port nfs

 

We are all good now with configuring the NFS Server. The next step is to configure the client and test if your configuration works. So, let’s proceed and configure the client.

Step 5) Configure the Client system

Now log in to the client system and update the package index as shown.

$ sudo apt update

Next, install the nfs-common package as shown.

$ sudo apt install nfs-common

 

Then create a directory in the /mnt folder on which you will mount the NFS share from the server.

$ sudo mkdir -p /mnt/client_shared_folder

Finally, mount the remote NFS share directory to the client directory as follows.

$ sudo mount 192.168.88.86:/mnt/server_shares /mnt/client_shared_folder

 

Step 6) Testing the NFS Share setup

To test if our configuration is working, we are going to create a test file in the NFS directory as shown

$ cd /mnt/server_shares

$ touch nfs_share.txt

 

Now, let’s get back to our client and see if we can see the file in our mounted directory

$ ls /mnt/client_shared_folder/

And voila! There goes our file as shown in the snippet below. This is confirmation that our setup was successful.

 

That’s it for today. We hope this guide was beneficial to you and that you can comfortably share files using NFS on your network.

 

Comments

Popular posts from this blog

Installing NFSEN & NFDUMP on Ubuntu and Next integrate with LibreNMS

IP Core Networks | Your Education, Your Choice

How to Install & Integrate Oxidized Into LibreNMS