In the realm of Unix-like operating systems, the Network File System (NFS) is a widely adopted protocol for sharing files and directories. It offers the flexibility to access files and directories on remote servers as though they were on your local system. This guide provides a detailed walkthrough on installing NFS Server on Debian 12, a popular Linux distribution.

Prerequisites

Before we start, let’s ensure we have the following prerequisites:

  1. A server running Debian 12 (Bookworm)
  2. A fresh OS install to mitigate potential issues
  3. SSH access to the server
  4. An active internet connection
  5. A user account with sudo privileges

Step-by-step Installation of NFS Server on Debian 12

Step 1: Update Your Package List

Firstly, we need to update our package list to fetch the latest information about available packages. Run the following commands:

sudo apt update
sudo apt upgrade

Step 2: Install NFS Server Packages

The next step is to install the nfs-kernel-server package on the server. Run the following commands:

sudo apt install nfs-kernel-server nfs-common

During the installation, you’ll be prompted to confirm. Type ‘y’ and press ENTER to proceed.

Step 3: Configure NFS Exports

Now, let’s create a directory that you want to share with the NFS client:

sudo mkdir -p /mnt/nfsshare

Change the ownership of the directory:

sudo chown nobody:nogroup /mnt/nfsshare

Next, we need to edit the /etc/exports file to configure the directory as an NFS share:

sudo nano /etc/exports

Add the following line, replacing client_ip with the IP address of your NFS client:

/mnt/nfsshare client_ip(rw,sync,no_subtree_check)

Subsequently, export the NFS share:

sudo exportfs -a

Deciphering NFS Options

The options used in the /etc/exports file are:

  1. rw: This grants read and write access to the shared directory.
  2. sync: This forces NFS to write changes to the disk before replying to the client.
  3. no_subtree_check: This option disables subtree checking to enhance NFS performance.

Step 4: Start and Enable the NFS Server

Ensure that the NFS server service is running and enabled to start on boot:

sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server

Confirm the NFS server service status:

sudo systemctl status nfs-kernel-server

If any issues arise while starting the NFS server, check the logs for error messages:

sudo journalctl -u nfs-kernel-server -f

Step 5: Configure NFS Client

On the NFS client machine, install the nfs-common package:

sudo apt install nfs-common

Create a mount point for the NFS share:

sudo mkdir -p /mnt/nfsshare

Mount the NFS share:

sudo mount server_ip:/mnt/nfsshare /mnt/nfsshare

Replace server_ip with the IP address of your NFS server.

If you encounter issues while mounting the NFS share, check the logs for error messages:

sudo journalctl -u nfs-common -f

Step 6: Configure Firewall Rules for NFS Server

If your Debian system has a firewall enabled, you must allow NFS traffic. Use the following commands to open the necessary ports for the NFS client’s connection:

sudo ufw allow from 192.168.1.0/24 to any port nfs
sudo ufw reload

Replace 192.168.1.0/24 with the appropriate subnet for your network.

Step 7: Automount NFS Share (Optional)

To mount the NFS share automatically at boot, edit the /etc/fstab file on the NFS client:

sudo nano /etc/fstab

Add the following line:

server_ip:/mnt/nfsshare /mnt/nfsshare nfs defaults,user,exec,_netdev 0 0

Replace server_ip with the IP address of your NFS server.

Understanding NFS Client Options

The options used in the /etc/fstab file are:

  1. defaults: This sets the default options for NFS mounts.
  2. user: This allows regular users to mount the NFS share.
  3. exec: This allows execution of binaries on the NFS share.
  4. _netdev: This prevents the client from attempting to mount the NFS file system until the network has been enabled.

Step 8: Testing

Finally, we’ll test our setup. Create a test file on the NFS server in the shared directory:

echo "NFS test file" | sudo tee /mnt/nfsshare/testfile.txt

On the NFS client, verify that you can see the test file:

cat /mnt/nfsshare/testfile.txt

If you can see the test file, then congratulations! You have successfully installed NFS Server on Debian 12 Bookworm.

For further assistance or useful information, we recommend you check the official Debian website.

If you’re looking for a robust, reliable, and scalable hosting solution for your business, consider Shape.host’s Linux SSD VPS services. Shape.host offers a managed VPS service, freeing up your time to focus on your core business.