環境介紹: 1. 服務器: 192.168.0.100 2. 客戶機: 192.168.0.101 安裝軟件包: 1. 服務器和客戶機都要安裝nfs 和 rpcbind 軟件包: yum -y install nfs-utils rpcbind 2. 可用如下命令查看,是否已經安裝了nfs-uitls rpcbind這兩個軟件包:若是查詢結果以下面所示,說明已經安裝過了: [root@Server1 ~]# rpm -qa|grep nfs nfs-utils-1.2.3-39.el6.x86_64 nfs4-acl-tools-debuginfo-0.3.3-6.el6.x86_64 nfs-utils-debuginfo-1.2.3-39.el6.x86_64 nfs-utils-lib-devel-1.1.5-6.el6.x86_64 nfs-utils-lib-1.1.5-6.el6.x86_64 nfs-utils-lib-debuginfo-1.1.5-6.el6.x86_64 nfs4-acl-tools-0.3.3-6.el6.x86_64 [root@Server1 ~]# rpm -qa|grep rpcbind rpcbind-0.2.0-11.el6.x86_64 服務器端配置: 1. 在服務器上建立NFS共享目錄:mkdir /usr/local/test 2. 設置共享目錄的讀寫權限: chmod 666 /usr/local/test 3. 編輯export文件: vi /etc/exports /usr/local/test/ 192.168.0.101(rw,no_root_squash,no_all_squash,sync) 注意地址和參數表之間沒有空格。若是下面設置的mountd端口大於1024,須要在參數表裏加入參數:insecure 4. 使配置生效: exportfs -r 注:配置文件說明: /usr/local/test/ 爲共享的目錄,使用絕對路徑。 192.168.0.101(rw,no_root_squash,no_all_squash,sync) 爲客戶端的地址及權限,地址能夠是一個網段(如:192.168.0.0/24),一個IP地址或者是一個域名,域名支持通配符,如:*.hpce.cn,地址與權限中間沒有空格。 權限說明: rw:read-write,可讀寫; ro:read-only,只讀; sync:文件同時寫入硬盤和內存;因爲咱們的日誌須要同步寫,全部用sync選項。 async:文件暫存於內存,而不是直接寫入內存; no_root_squash:NFS客戶端鏈接服務端時若是使用的是root的話,那麼對服務端分享的目錄來講,也擁有root權限。顯然開啓這項是不安全的。 root_squash:NFS客戶端鏈接服務端時若是使用的是root的話,那麼對服務端分享的目錄來講,擁有匿名用戶權限,一般他將使用nobody或nfsnobody身份; all_squash:不論NFS客戶端鏈接服務端時使用什麼用戶,對服務端分享的目錄來講都是擁有匿名用戶權限; anonuid:匿名用戶的UID值,一般是nobody或nfsnobody,能夠在此處自行設定; anongid:匿名用戶的GID值。 5. 啓動服務rpcbind、nfs服務: service rpcbind start service nfs start 服務器端防火牆設置(NFS 開啓防牆配置): 修改/etc/services文件: 配置rpc,nfsd,rquotad,mountd使用的端口。配置以前先檢查一下是否已經配置過了,已經配過的就不用配置了。沒有配置的,要分配一個在此文件中未被使用的端口號。個人機器默認配置了:rpc、nfsd、rquotad mountd: 沒有配置。手工加上: mountd 48620/tcp #rpc.mountd mountd 48620/udp #rpc.mountd 若是mountd佔用端口大於 1024,在文件 /etc/exports裏須要加入參數insecure。如: 192.168.0.100(insecure,rw,async,root_squash,no_all_squash) 重啓NFS服務: service nfs restart 在防火牆配置文件裏開放上面配置的端口: 打開文件:vim /etc/sysconfig/iptables 加入紅色部分的內容: -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT #rpc -A INPUT -m state --state NEW -m tcp -p tcp --dport 121 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 121 -j ACCEPT #nfsd -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT #rquotad -A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT #mountd -A INPUT -m state --state NEW -m tcp -p tcp --dport 48620 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 48620 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited 客戶端掛載: 建立掛載目錄: mkdir /usr/local/test 查看服務器拋出的共享目錄信息: showmount -e 192.168.0.100 Export list for 192.168.0.100: /usr/local/test 192.168.0.101 若是顯示:rpc mount export: RPC: Unable to receive; errno = No route to host,則須要在服務端關閉防火牆。 爲了提升NFS的穩定性,使用TCP協議掛載,NFS默認用UDP協議: mount -t nfs 192.168.0.100:/usr/local/test /usr/local/test -o proto=tcp -o nolock 掛載成功後便可訪問共享的NFS文件系統了。 卸載已掛在的NFS umount /usr/local/test 查看掛載目錄的信息: fuser -m -v /usr/local/test rpcinfo –p ip /// 查看主機的rpc服務和端口 showmount –e ip /// 查看主機拋出的nfs列表 nfs其它功能: 1. service nfslock start 容許NFS客戶端在服務器上對文件加鎖.這個進程對應於nfslock服務 遇到的問題: 1. clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) 2.rpcinfo: can't contact portmapper: RPC: Remote system error - No route to host 解決辦法:服務器上執行: rpcinfo -p 192.168.0.100 把列出來的端口添加到 /etc/sysconfig/iptables 文件,而後重啓防火牆就能夠了
來源於:http://blog.chinaunix.net/uid-20551990-id-4278757.htmlhtml