Files
my-docs/Storage/NFS/setup.md
2025-04-09 15:24:55 +02:00

122 lines
2.2 KiB
Markdown

# 📡 NFS Server & Client Setup Guide (Ubuntu)
Easily set up a Network File System (NFS) for sharing files between Linux systems on the same network.
---
## 🖥️ Server Configuration (Ubuntu)
### 1. Install NFS Kernel Server
Install the required package:
```bash
sudo apt update
sudo apt install nfs-kernel-server
```
### 2. Create a Shared Directory
Replace `<shared-directory>` with your preferred path:
```bash
sudo mkdir -p <shared-directory>
sudo chown nobody:nogroup <shared-directory>
sudo chmod 777 <shared-directory>
```
> ✅ *Best practice:* Use a dedicated directory for NFS shares, e.g., `/srv/nfs/shared`.
### 3. Configure NFS Exports
Create an exports configuration file:
```bash
sudo vim /etc/exports.d/shared.exports
```
Add the following line (update paths and IPs accordingly):
```
<shared-directory> <client-ip>(rw,sync,no_root_squash,no_subtree_check)
```
> 💡 **Notes:**
> - `<shared-directory>`: Full path to the directory you want to share
> - `<client-ip>`: IP address of the client allowed to access the share
### 4. Apply Export Changes
```bash
sudo exportfs -ra
```
### 5. Enable and Restart NFS Service
```bash
sudo systemctl enable nfs-server
sudo systemctl restart nfs-server
```
---
## 💻 Client Configuration (Ubuntu)
### 1. Install NFS Client Packages
```bash
sudo apt update
sudo apt install nfs-common rpcbind
```
### 2. Create a Mount Point
Choose a local directory to mount the share (e.g., `/mnt/nfs`):
```bash
sudo mkdir -p <mount-point>
sudo chmod 777 <mount-point>
```
### 3. Mount the NFS Share (Temporary)
```bash
sudo mount -t nfs <server-ip>:<shared-directory> <mount-point>
```
> Example:
> `sudo mount -t nfs 192.168.0.10:/srv/nfs/shared /mnt/nfs`
### 4. Enable Auto-Mount at Boot
Edit the fstab file:
```bash
sudo vim /etc/fstab
```
Add this line:
```
<server-ip>:<shared-directory> <mount-point> nfs defaults 0 0
```
> Example:
> `192.168.0.10:/srv/nfs/shared /mnt/nfs nfs defaults 0 0`
### 5. Verify and Reload Mounts
```bash
sudo mount -a
```
---
## ✅ Final Checklist
- 🔄 NFS server and client packages installed
- 📁 Shared and mount directories properly set
- 🔐 Permissions and access IPs correctly configured
- ⚙️ Auto-mount enabled with `/etc/fstab`