列如:服務端:192.168.10.17 客戶端:192.168.10.16
一、 服務端操作:
1.安裝NFS服務
sudo apt-get install nfs-kernel-server
2.打開/etc/exports文件,在末尾加入
/home/sdb/newspic *(rw,sync,no_root_squash,no_subtree_check)
其中/home/sdb/newspic 是你要共享的目錄
- :允許所有的網(wǎng)段訪問
rw :讀寫權限
sync:資料同步寫入內在和硬盤
no_root_squash:nfs客戶端共享目錄使用者權限
no_subtree_check 和上面相對,不檢查父目錄權限
如果需要指定只對某個網(wǎng)段(如192.168.10.1~192.168.10.256)可以這樣設置
指定網(wǎng)斷:/home/sdb/newspic 192.168.10.* (rw,sync,no_root_squash,no_subtree_check)
指定IP:/home/sdb/newspic 192.168.10.16 (rw,sync,no_root_squash,no_subtree_check)
多目錄共享添加多行即可
3.重啟服務
sudo /etc/init.d/portmap restart <—重啟portmap 暫時沒用到
sudo /etc/init.d/nfs-kernel-server restart <—重啟nfs服務
showmount –e <—顯示共享出的目錄
二、 客戶端操作
- 安裝nfs服務
安裝nfs-common或nfs-kernel-server都行 一般安裝nfs-kernel-server
sudo apt-get isntall nfs-common
sudo apt-get install nfs-kernel-server - 掛載
sudo mount -t nfs 192.168.10.17: /home/sdb/newspic /home/sdb/newspic
這一命令就已經(jīng)將17上的/home/sdb/newspic 目錄掛載到客戶機的/home/sdb/newspic目錄上了。
可以在客戶機上掛載目錄里創(chuàng)建一個文件進行測試
sudo touch 1.txt
加到服務端上查看發(fā)現(xiàn)文件已經(jīng)存在了,共享成功。
如果掛載時一直卡在連接狀態(tài) 一般情況就是端口沒有開需要開通 111 和2049 端口即可
- 端口開通
在 sbin目錄下 輸入iptables -I INPUT -p tcp –dport 80 -j ACCEPT:
/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
即 80 是指你要開通的端口號 - 取消掛載
sudo umount /home/sdb/newspic
如果取消掛載的時候提示 “/usr/local/www device is busy ” 的提示,表示目錄正在使用,無法取消掛載。
這里我們可以執(zhí)行如下命令:
fuser -km /usr/local/www
df –lh - 開機自動掛載
如果想實現(xiàn)開機自動掛載,可以在/etc/rc.local文件中exit 0之前加入我們要掛載的命令
sudo mount -t nfs 192.168.10.17: /home/sdb/newspic /home/sdb/newspic 即可
三、 附錄NFS常用參數(shù)
ro 只讀訪問
rw 讀寫訪問sync 所有數(shù)據(jù)在請求時寫入共享
async nfs在寫入數(shù)據(jù)前可以響應請求
secure nfs通過1024以下的安全TCP/IP端口發(fā)送
insecure nfs通過1024以上的端口發(fā)送
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_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的GID