網絡檔案系統(Network File System,NFS),一種使用于分散式檔案系統的協定,由升陽公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的作業系統能夠彼此分享個别的資料,讓應用程式在用戶端通過網絡通路位于伺服器磁盤中的資料,是在Unix系統間實作磁盤檔案共享的一種方法。
NFS的基本原則是“容許不同的用戶端及服務端通過一組RPC分享相同的檔案系統”,它是獨立于作業系統,容許不同硬體及作業系統的系統共同進行檔案的分享。
系統:CentOS 6.5
nfs伺服器ip:192.168.1.65
nfs用戶端ip:192.168.1.66
#安裝
yum install nfs-utils rpcbind
安裝完以後先不急着啟動,先來了解一下nfs服務運作在哪些端口上,它預設需要使用5個端口,其中有4個端口是動态的,是以如果伺服器和用戶端之間有iptables,就要先把這4個動态端口設定成靜态的,然後加入進防火牆規則裡,需要修改的端口有如下四個(端口可以根據需求改,不一定就和我這一樣):
#編輯nfs配置檔案
vi /etc/sysconfig/nfs
LOCKD_TCPPORT=30001 #TCP鎖使用端口
LOCKD_UDPPORT=30002 #UDP鎖使用端口
MOUNTD_PORT=30003 #挂載使用端口
STATD_PORT=30004 #狀态使用端口
改好以後儲存退出,除了以上四個端口要通過iptables,還有nfs協定端口2049以及rpc的111端口,這樣才能順利的使用nfs服務。
#往iptables裡寫入規則,讓需要的端口通過
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30002 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30003 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30004 -j ACCEPT
#我在/mnt下建立一個目錄,并touch一個測試檔案test
mkdir /mnt/aiplaypc1
touch /mnt/aiplaypc1/tset
#編輯配置檔案,預設是空的
vi /etc/exports
#把/mnt/aiplaypc1目錄共享給192.168.1.0的所有主機,可以寫主機名、域名等,使用預設參數(ro,sync,wdelay,root_squash)
/mnt/aiplaypc1 192.168.1.0/24(ro,sync,wdelay,root_squash)
#參數詳解
ro #隻讀共享
rw #讀寫共享
sync #同步寫操作
async #異步寫操作
wdelay #延遲寫操作
root_squash #屏蔽遠端root權限
no_root_squash #不屏蔽遠端root權限
all_squash #屏蔽所有遠端使用者的權限
#準備工作做好了,現在就可以啟動服務了。
service nfs start
chkconfig nfs on
service rpcbind start
chkconfig rpcbind on
接下來是用戶端的操作
yum install nfs-utils
#挂載nfs伺服器的共享目錄到/mnt/aiplaypc2
mount -t nfs 192.168.1.65:/mnt/aiplaypc1 /mnt/aiplaypc2
#檢查是否讀取到了伺服器的共享檔案,不出意外就可以看到有個test檔案
ls /mnt/aiplaypc2
#開機自動挂載
echo "192.168.1.65:/mnt/aiplaypc1 /mnt/aiplaypc2 nfs defaults 0 0" >> /etc/fstab