一、概念
nfs(network file system/網路檔案系統):
1、設定linux系統之間的檔案共享(linux與windows中間檔案共享採用samba服務);
2、nfs只是一種檔案系統,本身沒有傳輸功能,是基於rpc協議實現的,才能達到兩個linux系統之間的檔案目錄共享;
3、nfs為c/s架構;
nfs伺服器ip:192.168.0.100
nfs客戶端ip:192.168.0.101
1、配置檔案
主要配置檔案為:/etc/exports
格式為: 共享目錄 可mount主機ip(引數1,引數2,……)
如:/var/nfs 192.168.0.101(rw,insecure,sync,all_squash)
說明:必須注意nfs/目錄的訪問許可權,必須設定成777許可權;父目錄/var許可權無要求,普通的755即可;
選項 說明
ro 該主機對該共享目錄有唯讀許可權
rw 該主機對該共享目錄有讀寫許可權
root_squash 客戶機用root使用者訪問該共享資料夾時,將root使用者對映成匿名使用者
no_root_squash 客戶機用root訪問該共享資料夾時,不對映root使用者
all_squash 客戶機上的任何使用者訪問該共享目錄時都對映成匿名使用者
anonuid 將客戶機上的使用者對映成指定的本地使用者id的使用者
anongid 將客戶機上的使用者對映成屬於指定的本地使用者組id
sync 資料同步寫入到記憶體與硬碟中
async 資料會先暫存於記憶體中,而非直接寫入硬碟
insecure 允許從這台機器過來的非授權訪問
例如:/ zhang(rw) wang(rw,no_root_squash)
表示共享伺服器上的根目錄(/)只有zhang和wang兩台主機可以訪問,且有讀寫許可權;zhang主機用root使用者身份訪問時,將客戶機的root 使用者對映成伺服器上的匿名使用者(root_squash,該引數為預設引數),相當於在伺服器使用nobody使用者訪問目錄;wang主機用root使用者 身份訪問該共享目錄時,不對映root使用者(no_root_squash),即相當於在伺服器上用root身份訪問該目錄
/root/share/ 192.168.1.20(rw,insecure,sync,all_squash)
表示共享伺服器上的/root/share/目錄只有192.168.1.20主機可以訪問,且有讀寫許可權;此主機用任何身份訪問時,將客戶機的使用者都映 射成伺服器上的匿名使用者(all_squash),相當於在伺服器上用nobody使用者訪問該目錄(若客戶機要在該共享目錄上儲存檔案(即寫操作),則服 務器上的nobody使用者對該目錄必須有寫的許可權)
/home/ljm/ *.gdfs.edu.cn(rw,insecure,sync,all_squash)
表示共享/home/ljm/目錄,*.gdfs.edu.cn域中所有的主機都可以訪問該目錄,且有讀寫許可權
/home/share/ .gdfs.edu.cn(ro,sync,all_squash,anonuid=student,anongid=math)
表示共享目錄/home/share/,*.gdfs.edu.cn域中的所有主機都可以訪問,但只有唯讀的許可權,所有使用者都對映成伺服器上的uid為student、gid為math的使用者
2、啟動相關服務
3、檢查共享目錄
隨後可以採用showmount –e檢視一下,看看共享的目錄情況:
[root@ns var]# showmount -e
export list for ns.osserver:
/var/nfs 192.168.0.101
ok,到此為止,nfs伺服器搭建完畢;
出現mount: mount to nfs server 'myhostname.mydomain.edu' failed: system error: no route to host錯誤解決方案
首選關閉防火牆測試一下是否是防火牆問題,確定防火牆問題操作步驟如下:
新建檔案: /etc/sysconfig/nfs ,把下面內容加入/etc/sysconfig/nfs中
mountd_port="4002"
statd_port="4003"
lockd_tcpport="4004"
lockd_u***ort="4004"
-a rh-firewall-1-input -p tcp --dport 111 -s 222.73.123.4 -j accept
-a rh-firewall-1-input -p udp --dport 111 -s 222.73.123.4 -j accept
-a rh-firewall-1-input -p tcp --dport 2049 -s 222.73.123.4 -j accept
-a rh-firewall-1-input -p udp --dport 2049 -s 222.73.123.4 -j accept
-a rh-firewall-1-input -p tcp --dport 4002:4004 -s 222.73.123.4 -j accept
-a rh-firewall-1-input -p udp --dport 4002:4004 -s 222.73.123.4 -j accept
/etc/init.d/portmap restart 重啟portmap
/etc/init.d/nfs restart 重啟nfs
/etc/init.d/nfslock restart 重啟nfslock
1、確保portmap執行
客戶端必須確保rpc協議相應的portmap正常執行,否則mount將失敗;
2、掛載/var/nfs目錄(本地掛載點為/mnt/nfs)
mount -t nfs -o rw 192.168.0.100:/var/nfs /var/nfs
成功mount以後,即可同本地目錄一樣隨意操作;
開機自動載入設定如下:
vi /etc/fstab
檔案末尾加入
192.168.0.100:/var/nfs /var/nfs nfs rw 0 2
四、其它相關命令
1、當修改了/etc/exports檔案後,可以不用重新啟動nfs服務,直接採用exports –rv 即可重新匯出共享目錄;
該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的資訊輸出到螢幕上。
具體例子:
[root@ns var]# showmount -e
export list for ns.osserver:
/var/nfs 172.20.*.*
[root@ns var]# exportfs –au #全部解除安裝
[root@ns var]# showmount -e
export list for ns.osserver:
[root@ns var]# exportfs –rv #全部重新 export 一次
exporting 172.20.*.*:/var/nfs
[root@ns var]#
2、showmout命令對於nfs的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個引數是一般在nfs server上使用,是用來顯示已經mount上本機nfs目錄的cline機器。
-e :顯示指定的nfs server上export出來的目錄。
例如:[root@localhost ~]# showmount -e 172.20.65.16
export list for 172.20.65.16:
/var/nfs 172.20.*.*
[root@ns var]# showmount -a
all mount points on ns.osserver:
172.20.*.*:/var/nfs
五、常見問題解答
解決方案:可能是nfs伺服器的防火牆有問題;
解決方案:由於rpc協議沒執行;啟動portmap服務;
也有可能是防火牆問題;server/client均有可能。
linux下設定目錄許可權
chmod 777 home user 注 僅把 home user目錄的許可權設定為rwxrwxrwx chmod r 777 home user 注 表示將整個 home user目錄與其中的檔案和子目錄的許可權都設定為rwxrwxrwx引數 r表示啟動遞迴處理 2.chmod命令解析 chmo...
linux下設定共享目錄
linux系統的檔案或目錄的共享功能是非常強大,而且是非常靈活的,其對許可權的控制可以做到非常的細緻,當然如果你是通過命令列方式進行設定的 話,那麼對於剛接觸linux系統的使用者來說將是一件十分頭痛的事。但如果你所處的網路環境對安全要求不高的話,那麼只要簡單的幾個步驟就可以建立乙個 linux系統...
Linux下設定網絡卡
linux下設定網絡卡的速率和模式 mii tool f 100basetx fd eth0 把網絡卡eth0設定為100m的全雙工模式 還可以用 ethtool ethtool s eth0 speed 100 duplex full autoneg on 檢視機器上的網絡卡裝置 lspci 檢視...