NFS(Network FileSystem)的功能就是可以透過網路,讓不同的機器、不同的作業系統、可以彼此分享個別的檔案 (share files) 並進行操作。
NFS Server(10.10.10.128)
NFS 需要遠端程序呼叫 (RPC) 的服務,因此安裝 rpcbind 套件。
# yum install -y nfs-utils rpcbind
開機時啟動
# chkconfig nfs on
# chkconfig rpcbind on
啟動服務
# service rpcbind start // 先啟動
# service nfs start
關閉防火牆
# iptables -F
NFS 伺服器端分享資料夾設定
# vim /etc/exports
/var/ftp *(ro)
# service nfs restart
補充:
# exportfs -rv // 參數『v』代表詳細模式,可以不用加
NFS Client(10.10.10.129)
# rpcinfo -p 10.10.10.128 // 查看 NFS 伺服器是否有提供 NFS 服務
# showmount -e 10.10.10.128
Export list for 10.10.10.128:
/var/ftp *
# mkdir /mnt/nfsclient
# mount 10.10.10.128:/var/ftp /mnt/nfsclient
# df
檔案系統 1K- 區段 已用 可用 已用 % 掛載點
10.10.10.128:/var/ftp 15163392 2951168 11441664 21% /mnt/nfsclient
注意:無法對資料夾 /mnt/nfsclient 進行新增刪除的操作。NFS 客戶端的身份為管理者 root,但登入 NFS 伺服端後,系統會變更成使用者 nfsnobody,而通常使用者的權限對資料夾只有讀的權限。
有 2 種方法可以解決這個問題,都是在 NFS 伺服器端上設定
- 將共享資料夾的使用者權限變更成 xx7
- 在 /etc/exports 組態檔中加入 no_root_squash 參數,讓客戶端的管理者登入後亦維持管理者身份,但此舉有降低系統安全性的風險
# vim /etc/fstab
nisserver128.example.com:/var/ftp /mnt/nfsclient nfs ro 0 0
補充:NFS 伺服器端防火牆設定
NFS 服務埠號為 2049,rpcbind 服務埠號為 111,除此之外 STATD_PORT、MOUNTD_PORT、LOCKD_UDPPORT、LOCKD_TCPPORT 埠號皆系統會隨機配置,造成 NFS 客戶端無法連線,因此若不固定埠號,就是要把整個防火牆關閉,但此舉非常危險。
# vim /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32769
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 32769 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 662 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 662 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
# service nfs restart
Troubleshooting
client # mount nfs_server_ip:/var/ftp /mnt/nfsclient
mount.nfs: access denied by server while mounting nfs_server_ip:/var/ftp
client # showmount -e nfs_server_ip
Export list for nfs_server_ip:
/var/ftp 10.10.10.128
沒有留言:
張貼留言