How to Share Files Between Linux Computers Using NFS

Nearly all Linux distributions come with the ability to set up a Network File System (NFS) that allows the different Linux computers on the network to easily share files. NFS is only suitable for networks comprised entirely of Linux...
Part 1 of 2:

Creating the Server

  1. How to Share Files Between Linux Computers Using NFS Picture 1How to Share Files Between Linux Computers Using NFS Picture 1
    Use NFS (Network File System) to share files between Linux computers on a local network. If you need to share files with Windows or Mac computers, you will be much more successful using Samba.
  2. How to Share Files Between Linux Computers Using NFS Picture 2How to Share Files Between Linux Computers Using NFS Picture 2
    Understand how NFS works. When sharing files with NFS, there are two side: the server and the clients. The server is the computer that is actually storing the files, while the clients are the computers that are accessing the shared folder by mounting the shared folder as a virtual drive. NFS will need to be configured on both the server and any client that wants to connect.
  3. How to Share Files Between Linux Computers Using NFS Picture 3How to Share Files Between Linux Computers Using NFS Picture 3
    Open the terminal on the server computer. This is the computer that will be hosting the shared files. The server computer will need to be turned on and logged in in order for clients to mount the shared folder. NFS requires using the terminal to install and configure both the server and client.
  4. How to Share Files Between Linux Computers Using NFS Picture 4How to Share Files Between Linux Computers Using NFS Picture 4
    Type .sudo apt-get install nfs-kernel-server nfs-common portmap and press Enter. This will begin downloading and installing the NFS files on your computer.
  5. How to Share Files Between Linux Computers Using NFS Picture 5How to Share Files Between Linux Computers Using NFS Picture 5
    After installation, type .dpkg-reconfigure portmap. Select "No" from the menu that appears. This will enable other computers on the network to connect to your shared folder.
  6. How to Share Files Between Linux Computers Using NFS Picture 6How to Share Files Between Linux Computers Using NFS Picture 6
    Type .sudo /etc/init.d/portmap restart to restart the portmap service. This will ensure that your changes take effect.
  7. How to Share Files Between Linux Computers Using NFS Picture 7How to Share Files Between Linux Computers Using NFS Picture 7
    Make a dummy directory that will be used to share the data. This is an empty directory that will direct the clients to the actual shared directory. This will allow you to change the shared directory on your server later without having to make any changes to the clients.
    1. Type .mkdir -p /export/dummyname and press Enter. This will create a directory named dummyname that the clients will see.
  8. How to Share Files Between Linux Computers Using NFS Picture 8How to Share Files Between Linux Computers Using NFS Picture 8
    Type pico /etc/fstab and press Enter. This will open the /etc/fstab file and allow you to automatically mount the shared drive whenever the server boots up.
  9. How to Share Files Between Linux Computers Using NFS Picture 9How to Share Files Between Linux Computers Using NFS Picture 9
    Add .sharedpath dummypath none bind 0 0 to the end of the file. Replace sharedpath with the location of the shared drive, and replace dummypath with the location of the dummy directory you created earlier.
    1. For example, to share the /dev/sdb drive with the clients using the dummy directory created earlier, you would type /dev/sdb /export/Shared none bind 0 0. Save the changes to the file.
  10. How to Share Files Between Linux Computers Using NFS Picture 10How to Share Files Between Linux Computers Using NFS Picture 10
    Open the ./etc/exports file. You will need to add your dummy directory as well as the IPs that are allowed to access it to this file. Use the following format to share with all the IP addresses on your local network: /export/dummyname 192.168.1.1/24(rw,no_root_squash,async).[1]
  11. How to Share Files Between Linux Computers Using NFS Picture 11How to Share Files Between Linux Computers Using NFS Picture 11
    Use the .sudo /etc/init.d/nfs-kernel-server restart command to restart the NFS server.[2]
Part 2 of 2:

Connecting the Client Computers

  1. How to Share Files Between Linux Computers Using NFS Picture 12How to Share Files Between Linux Computers Using NFS Picture 12
    Open the terminal on the client computer.
  2. How to Share Files Between Linux Computers Using NFS Picture 13How to Share Files Between Linux Computers Using NFS Picture 13
    Type .sudo apt-get install portmap nfs-common and press Enter to install the NFS client files.
  3. How to Share Files Between Linux Computers Using NFS Picture 14How to Share Files Between Linux Computers Using NFS Picture 14
    Create the directory that the shared files will be mounted in. You can name this whatever you'd like. For example, you can type mkdir /sharedFiles to create a folder called "sharedFiles".
  4. How to Share Files Between Linux Computers Using NFS Picture 15How to Share Files Between Linux Computers Using NFS Picture 15
    Type .pico /etc/fstab to open the /etc/fstab file.
  5. How to Share Files Between Linux Computers Using NFS Picture 16How to Share Files Between Linux Computers Using NFS Picture 16
    Add .serverIP:sharedDirectory nfs rsize=8192,wsize=8192,timeo=14,intr to the end of the file. Replace serverIP with the IP address of the NFS server computer. Replace sharedDirectory with the dummy directory you created on the NFS server and the local directory you just created. Leave the rest of the values as they are for now.
    1. Using the above examples, the line might look like: 192.168.1.5:/export/Shared /sharedFiles nfs rsize=8192,wsize=8192,timeo=14,intr.
  6. How to Share Files Between Linux Computers Using NFS Picture 17How to Share Files Between Linux Computers Using NFS Picture 17
    Type .sudo /etc/init.d/portmap restart to restart portmap and use the new settings. The drive will automatically mount each time the computer reboots.
  7. How to Share Files Between Linux Computers Using NFS Picture 18How to Share Files Between Linux Computers Using NFS Picture 18
    Test the drive by manually mounting it before restarting. Type mount -a and then ls /sharedFiles to see if the shared files are displayed.
  8. How to Share Files Between Linux Computers Using NFS Picture 19How to Share Files Between Linux Computers Using NFS Picture 19
    Repeat this process for each connecting computer. You should be able to enter the same settings and successfully connect.[3]
3.5 ★ | 2 Vote