Contents

Linux - NFS 檔案系統

在 Unix 系列家族中最方便使用的遠端檔案系統莫過於 NFS,除了設定Export Server 容易之外,作為 Client 也很輕鬆就能實踐掛載。

練習環境
可以使用 HowHow 的創建 Lab 練習環境,來實作 NFS 伺服器與存取操作,使用方式請參閱 HowHow 網站 - Linux 練習 Lab 第二版

1. NFS 檔案系統簡介

NFS 是一種基於檔案儲存的協定,提供網路接入伺服器(NAS)設備使用,NFS可以使用 NFSv4 (TCP )或是 NFSv3 (TCP + UDP)協定,NFS 伺服器透過暴露出分享的檔案系統目錄及其內容,就可以使 Client 端直接在本地機器上掛載其檔案目錄使用。

2. NFS Server 設定 (ServerA)

2.1. 安裝 NFS 套件

1
2
3
4
5
[root@servera ~]# yum install  nfs-utils -y | tail -n 4
Upgraded:
  nfs-utils-1:2.3.3-57.el8_7.1.x86_64

Complete!
Note
無論是 Client 或是 Server 均需安裝此 nfs-utils套件。

2.2. 分享目錄及設定 NFS Server

1
2
3
4
5
[root@servera ~]# mkdir -p /shares
[root@servera ~]# echo "Hello World" > /shares/example.log
[root@servera ~]# cat > /etc/exports.d/server.exports <<EOF
> /shares *.lab.example.com(ro,no_root_squash)
> EOF
權限 rw
可以設定 rw 或是 ro來限制其單一主機或是網段內的機器存取權限。
權限 no_root_squash
當 Client 端進行存取時預設的使用者會變成 nobody使用者,表示 Client 的 root 將完全無法使用其遠端掛載 NFS 內容,可以透過設定 no_root_squash 來進用此保護措施。

2.3. 啟用服務及開放防火牆規則

1
2
3
4
5
6
[root@servera ~]# systemctl enable --now nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@servera ~]# firewall-cmd --permanent --add-service=nfs
success
[root@servera ~]# firewall-cmd --reload
success

2.4. 檢查開放的分享目錄

1
2
[root@servera ~]# exportfs -v
/shares         172.25.250.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash)

3. NFS Client 設定 (ServerB)

2.1. 安裝 NFS 套件

1
2
3
4
5
[root@servera ~]# yum install  nfs-utils -y | tail -n 4
Upgraded:
  nfs-utils-1:2.3.3-57.el8_7.1.x86_64

Complete!

2.2 掛載硬碟及其看內容

1
2
3
[root@serverb ~]# mount servera:/shares /mnt
[root@serverb ~]# cat /mnt/example.log
Hello World

2.3 開機自動掛載

1
2
3
4
5
6
7
[root@serverb ~]# vim /etc/fstab
[root@serverb ~]# cat >> /etc/fstab << EOF
servera:/shares /mnt nfs defaults,_netdev 0 0
EOF
[root@serverb ~]# mount -a
[root@serverb ~]# cat /mnt/example.log
Hello World
autofs
強烈建議使用 autofs 套件來代替一般的掛載,可以減少無用的頻寬開銷。

3. 小結

NFS 在網路分享上是最簡單也是最容易的一種方式, Windows 也可以安裝內建的 nfs client 套件來掛載由 Linux 分享出來的網路磁碟機使用。



如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!