- 安裝NFS
debian:~# apt-get install nfs-common nfs-kernel-server portmap - Server端設定
debian:~# vi /etc/exports
add
/mnt/sahre 140.134.1xx.1xx(rw,sync,subtree_check) hostname(ro,sync,subtree_check)
參數設定
ro 只允許讀取
rw 允寫讀寫
sync 檔案同步
async 同步前回應
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限
no_subtree_check 不檢查
all_squash 所有用戶皆為匿名者身份
anonuid 匿名者使用哪一個帳號的 UID
anongid 匿名者使用哪一個帳號的 GID - 重新載入設定的方式
debian:~# /etc/init.d/nfs-kernel-server restart
或是執行指令
debian:~# exportfs -r - 遠端掛載
debian:~# mount -t nfs 140.134.1xx.1xx:/mnt/share remote - 卸載
server
debian:~# exports -au
client
debian:~# umount remote - 開機自動掛載設定
debian:~# vi /etc/fstabadd
/mnt/sahre ip_hostname(rw,async,all_squash,anonuid=1000,anongid=1000) - 防火牆的設定
nfs使用到的port為2049(nfs-kernel-server)、111(portmap)及一個1024以下的隨選port(rpc.mountd),要做到防火牆設定必需把rpc.mountd的port固定住
debian:~# vi /etc/default/nfs-kernel-server
fix
RPCMOUNTDOPTS="--port 32767" #指定port
save & exit
設定iptables
iptables -A INPUT -i $nic_output -p tcp -s source_ip --dport 111 -j ACCEPT
iptables -A INPUT -i $nic_output -p udp -s source_ip --dport 111 -j ACCEPT
iptables -A INPUT -i $nic_output -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -i $nic_output -p tcp --dport 32767 -j ACCEPT - 安裝autofs
debian:~# apt-get install autofs要掛載遠端機器 hostname 上的 /directory 目錄到您機器的 /mnt/nfs/share 掛載點
debian:~# vi auto.master
add/mnt/nfs /etc/auto.nfs --timeout 60
save&exitdebian:~# vi /etc/auto.nfs
add
share -rw,soft,intr,rsize=8192,wsize=8192 hostname:/directory
save&exit
debian:~# /etc/init.d/autofs restart之後只要你嘗試進入 /mnt/nfs/share 目錄,autofs 即會自動幫你掛載該 nfs 目錄
- 除錯參考
當/etc/exports設定的權限,不符合client端的來源時,則會出現錯誤訊息如下
mount: hostname:/dir failed, reason given by server: Permission denied
然而必須注意的是,若在nfs server的/etc/hosts內有設定IP與hostname的對照,則nfs會先把來源IP轉換成hostname,再與/etc/exports內的設定作對照,若此時/etc/exports的設定使用IP而非hostname,則會產生無法匹配的情況,因此而出現,雖然來源IP在/etc/exports已正確設定,卻仍然發生Permission denied的怪異現象
解決方案是在/etc/exports內採用hostname,避免使用IP - 老師上課的資料
NFS
NFS,Network File System 網路檔案系統,是 UNIX/Linux 與 UNIX/Linux 之間檔案分享的一種服務。
設定前,請先檢查通訊協定 RPC(Remote Procedure Call)中的 portmapper 是否正常運作?
查詢 RPC 服務,請使用 rpcinfo 指令。# rpcinfo -p
安裝
portmapper 安裝 # apt-get install portmap
NFS 安裝 # apt-get install nfs-kernel-server
設定
NFS 主要設定檔為 /etc/exports 檔案,內容格式相當簡單,檔案內各欄位如下說明:
- 欄位#1 → 要分享的檔案目錄實際路徑。
- 欄位#2→ 分享的對象,後面緊接著括號內為對象可用權限)。多對象則使用空格分開。
範例:
/tmp *(rw,sync)
啟動
# /etc/init.d/nfs-kernel-server start
權限說明
- ro 唯讀
- rw 可讀可寫入
- no_root_squash 如果為 root 用戶,則具有該目錄的 root 權限。(不建議使用)
- root_squash 如果 root 用戶,則將身份變成匿名者身份。
- all_squash 所有用戶皆為匿名者身份。
- anonuid 匿名者使用哪一個帳號的 UID。
- anongid 匿名者使用哪一個帳號的 GID。
- sync 資料同步寫入。
- async 資料先寫入記憶體中。
相關指令
- showmount 列出指定主機分享出來的資源清單
# showmount -e
# showmount -e Teacher
# showmount -e 140.134.210.131 - exportfs 匯出 /etc/ports 內容給 NFS Server
# exportfs -r
2008年9月30日 星期二
Debian NFS設定
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言