系統環境: NFS伺服器操作系統: ubuntu18.04 server lts NFS伺服器IP: 192.168.1.164 註: NFS伺服器 指的是 待安裝 NFS服務 的機器(物理機或者虛擬機) 步驟如下: 1. 先更新 2. 安裝 NFS服務 (此時該服務已設置開機自啟動) 3.修改配置 ...
系統環境:
NFS伺服器操作系統: ubuntu18.04 server lts
NFS伺服器IP: 192.168.1.164
註: NFS伺服器 指的是 待安裝 NFS服務 的機器(物理機或者虛擬機)
步驟如下:
1. 先更新
sudo apt update
2. 安裝 NFS服務 (此時該服務已設置開機自啟動)
sudo apt install nfs-server
3.修改配置文件, 添加nfs-server上用於共用的目錄,並設置允許訪問該目錄的客戶機IP,及其讀寫許可權.我這裡為了配置簡單使用的是 【3.1】的方式
3.1 在NFS伺服器上 創建根目錄 /nfsroot 用於共用 , 該目錄的讀寫許可權 共用給所有連接到該伺服器的 NFS客戶端
cd / sudo mkdir nfs-server sudo chmod +rw -R nfs-server echo "/nfsroot *(rw,sync,no_root_squash)">>/etc/exports
3.2 在NFS伺服器上 創建 根目錄 /nfsdata/client1 用於共用, 該目錄的讀寫許可權共用給客戶端 192.168.1.164 (該客戶端主要用來寫業務日誌或者服務運行狀態日誌等)
sudo mkdir /nfsdata sudo mkdir /nfsdata/www_logs sudo chmod +rw -R /nfsdata/www_logs echo "/nfsdata/www_logs 192.168.1.164(rw,sync,no_root_squash)">>/etc/exports
3.3 NFS伺服器上的目錄 /nfsdata/www_logs 讀許可權共用給客戶端 192.168.1.201 (該客戶端用來做日誌分析, 異常校驗,服務崩潰日誌查詢等)
echo "/nfsdata/www_logs 192.168.1.201(ro,sync,no_root_squash)">>/etc/exports
4. 重啟NFS服務
sudo service nfs-server restart
5. 至此 NFS 服務端搭建完畢.
6. NFS客戶端(這裡和Server操作系統一致)安裝
sudo apt-get install nfs-common
7. NFS客戶端掛載測試。(將NFS伺服器的目錄 /nfsroot 掛載到 客戶端目錄 /mnt/nfsroot, 此時服務端 /nfsroot目錄和 該客戶端 /mnt/nfsroot 目錄同步
mount -t nfs 192.168.1.164:/nfsroot /mnt/nfsroot
附:
(1)關於【步驟3】中的配置說明, 以 /nfsroot *(rw,sync,no_root_squash) 為例
第一項:/nfsroot
指在NFS伺服器上被用來共用的目錄, 該目錄會和客戶端的某個目錄同步
第二項: *
這個 * 和【3.2】後面的 192.168.1.164 指的是要綁定到 該目錄(第一項中指定的)的客戶端 IP。若設置為 * 則表示允許任何NFS客戶端綁定到該目錄; 設置為192.168.1.164 表示僅允許IP 為 192.168.1.164的客戶端綁定該目錄
特定ip地址的主機:192.168.1.164 特定子網中的所有主機:192.168.1.0/24 或 192.168.1.0/255.255.255.0 特定功能變數名稱的主機:nfs.rurjs.com 特定域中的所有主機:*.rurjs.com 所有主機:*
第三項: rw
這裡表示客戶端對該共用目錄的許可權,
ro:共用目錄只讀;
rw:共用目錄可讀可寫;
第四項: sync
sync:將數據同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證數據的一致性; async:將數據先保存在記憶體緩衝區中,必要時才寫入磁碟;
第五項: no_root_squash
all_squash:所有訪問用戶都映射為匿名用戶或用戶組; no_all_squash(預設):訪問用戶先與本機用戶匹配,匹配失敗後再映射為匿名用戶或用戶組; root_squash(預設):將來訪的root用戶映射為匿名用戶或用戶組; no_root_squash:來訪的root用戶保持root帳號許可權; subtree_check(預設) :若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權; no_subtree_check :即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;
其他可用項:
anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,預設為nfsnobody(65534); anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,預設為nfsnobody(65534); secure(預設):限制客戶端只能從小於1024的tcp/ip埠連接伺服器; insecure:允許客戶端從大於1024的tcp/ip埠連接伺服器; wdelay(預設):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率; no_wdelay:若有寫操作則立即執行,應與sync配合使用;