一、服務器端:
1.1安裝NFS服務:
#執行以下命令安裝NFS服務器, #apt會自動安裝nfs-common、rpcbind等13個軟件包 sudo apt install nfs-kernel-server
1.2編寫配置文件:
#編輯/etc/exports 文件: sudo vim /etc/exports #/etc/exports文件的內容如下: /data/use *(rw,sync,no_subtree_check,no_root_squash)
解析:
/data/use——NFS服務器端的目錄,用於與nfs客戶端共享
*——允許所有的網段訪問,也可以使用具體的IP
rw——掛接此目錄的客戶端對該共享目錄具有讀寫權限
sync——資料同步寫入內存和硬盤
no_root_squash——root用戶具有對根目錄的完全管理訪問權限
no_subtree_check——不檢查父目錄的權限
1.3創建共享目錄
#在服務器端創建/data/use共享目錄 sudo mkdir -p /data/use
1.4重啟nfs服務:
sudo service nfs-kernel-server restart
1.5常用命令工具:
#在安裝NFS服務器時,已包含常用的命令行工具,無需額外安裝。 #顯示已經mount到本機nfs目錄的客戶端機器。 sudo showmount -e localhost #將配置文件中的目錄全部重新export一次!無需重啟服務。 sudo exportfs -rv #查看NFS的運行狀態 sudo nfsstat #查看rpc執行信息,可以用於檢測rpc運行情況 sudo rpcinfo #查看網絡端口,NFS默認是使用111端口。 sudo netstat -tu -4
二、客戶端:
2.1安裝客戶端工具:
#在需要連接到NFS服務器的客戶端機器上, #需要執行以下命令,安裝nfs-common軟件包。 #apt會自動安裝nfs-common、rpcbind等12個軟件包 sudo apt install nfs-common
2.2查看NFS服務器上的共享目錄
#顯示指定的(hcg-bg-as-01)NFS服務器上export出來的目錄 #hcg-bg-as-01為服務端主機名或IP地址 sudo showmount -e hcg-bg-as-01
2.3創建本地掛載目錄
sudo mkdir -p /data/use
2.4掛載共享目錄
#將NFS服務器192.168.3.167上的目錄,掛載到本地的/data/use/目錄下 mount -t nfs hcg-bg-as-01:/data/use /data/use mount -t nfs -o sync,noac hcg-nfs-01:/data/freeswitch /data/freeswitch
2.4自動掛載
vim /etc/fstab hcg-nfs-01:/data/freeswitch /data/freeswitch nfs defaults 0 0 hcg-nfs-01:/data/freeswitch /data/freeswitch nfs sync,noac 0 0
#注:在沒有安裝nfs-common或者nfs-kernel-server軟件包的機器上, #直接執行showmount、exportfs、nfsstat、rpcinfo等命令時, #系統會給出友好的提示, #比如直接showmount會提示需要執行sudo apt install nfs-common命令, #比如直接rpcinfo會提示需要執行sudo apt install rpcbind命令。
附錄
NFS常用參數 ro——只讀訪問 rw——讀寫訪問 sync——所有數據在請求時寫入共享 async——nfs在寫入數據前可以響應請求 secure——nfs通過1024以下的安全TCP/IP端口發送 insecure——nfs通過1024以上的端口發送 wdelay——如果多個用戶要寫入nfs目錄,則歸組寫入(默認) no_wdelay——如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置 hide——在nfs共享目錄中不共享其子目錄 no_hide——共享nfs目錄的子目錄 subtree_check——如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的權限(默認) no_subtree_check——和上面相對,不檢查父目錄權限 all_squash——共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。 no_all_squash——保留共享文件的UID和GID(默認) root_squash——root用戶的所有請求映射成如anonymous用戶一樣的權限(默認) no_root_squash——root用戶具有根目錄的完全管理訪問權限 anonuid=xxx——指定nfs服務器/etc/passwd文件中匿名用戶的UID anongid=xxx——指定nfs服務器/etc/passwd文件中匿名用戶的GID