這節我們介紹nfs的相關概念,以及如何配置nfs和在客戶端中檢視nfs。
nfs的配置過程很簡單。在伺服器端中編輯/etc/exports檔案,新增如下內容:
/home/nfs-share 192.168.1.122 *(rw,sync)
第一項是要共享的目錄,後者為共享的配置引數一般為:*(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
然後開啟nfs和portmap服務:
/etc/init.d/nfs start //用service nfs start也可以
/etc/init.d/portmap start //用service portmap stasrt也可以
在centos6.5中portmap已經改為rpcbind
在客戶端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file掛載伺服器端的共享目錄到本地的/home/remote-file掛載點,然後我們就可以在客戶端上應用到遠端主機上的/home/nfs-share目錄了。想要系統在開機時自動掛載,修改/etc/fstab檔案,把nfs伺服器的共享目錄新增進去就可以了,這個不用多說。
如何知道遠端主機上的共享目錄情況呢?使用showmount命令,這個命令需要root許可權。它有三個選項(記住這三個選項代表的含義:
showmount –a ip 顯示指定nfs伺服器的客戶端以及伺服器端在客戶端的掛載點
showmount –d ip 顯示指定nfs伺服器在客戶端的掛載點
showmount –e ip 顯示指定nfs伺服器上的共享目錄列表(或者叫輸出列表)
我們輸入命令showmount –a 192.168.1.123:
客戶端中出現的mount clntudp_create: rpc: program not registered錯誤是怎麼回事?噢,我剛才重啟了一下伺服器端,重啟後nfs服務沒有開啟。
我們開啟伺服器端的nfs服務,再從客戶端上檢視一下nfs伺服器的情況:
showmount –e顯示出nfs伺服器192.168.1.123上有兩個共享目錄:/tmp和/home/nfs-share
showmount –d顯示出nfs伺服器的共享目錄被掛載到了/home這個掛載點上。
解決方案:
被訪問的nfs伺服器上的防火牆沒有新增規則,向iptables裡面新增以下檢視的所有埠即可(目前解決的方法,當然你也可以關閉防火牆,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選別的應用來替代吧!畢竟開那麼多的埠,比較不安全呀!)
#vim /etc/sysconfig/iptables
#service iptables stop //關閉防火牆
通過#rpcinfo -p 10.10.209.148
[root@rh01 /]#
剛才在重啟nfs服務的時候,細心的話可以注意到,我們在輸入命令/etc/init.d/nfs start開啟nfs服務時,系統還自作主張地開啟了nfs quotas等其它3個服務。
怎麼回事?我們只輸入了一條啟動nfs服務的命令,它怎麼額外的啟動了3個服務?後面的啟動portmap服務又是怎麼回事?
我們首先要了解一點:nfs檔案系統要提供服務單靠本身的nfs服務是不夠的,還需要呼叫其它服務,這個其它服務就是rpc(remote procedure call,遠端過程呼叫)服務和portmap服務。由於nfs服務本身不提供檔案傳輸功能,我們要遠端使用nfs檔案系統就需要rpc服務的支援;而portmap服務用來為rpc服務進行動態埠分配和對映,所以portmap服務也是nfs服務所必須的。
正是因為nfs的執行必須要使用rpc服務,所以一般把nfs服務看作rpc服務的一種,開啟nfs服務其實就是在開啟rpc服務。redhat安全指南在講portmap服務時就說:「portmap 服務是用於 rpc 服務(如 nis 和 nfs)的動態埠分配守護程序」,明顯把nfs和nis(network information service)看成了rpc服務的其中兩個應用。
那麼nfs使用了rpc的哪些服務呢?rpc.nfsd服務和rpc.mountd服務。
明白了這點,我們就明白為什麼在開啟nfs服務時,系統除了開啟nfs services還開啟了rpc.nfsd和rpc.mountd,就是中的nfs daemon和nfs mountd。而至於nfs quotas是用來管理目錄配額的,它並不是必需的。也就明白了安裝nfs服務時所需要的兩個軟體包nfs-utils和portmap:nfs-utils軟體包提供了rpc.nfsd和rpc.mountd兩個rpc的daemon(守護程序)程式,而portmap軟體包提供了portmap程式。
需要注意的是:很多書上都說在啟動nfs服務時,要先啟動portmap服務,然後再啟動nfs服務,而關閉nfs服務時,要先關閉nfs服務,portmap服務不一定非得關掉,因為有可能還有其它服務需要它的支援,很多文章裡的操作也是先啟動portmap,然後啟動nfs。我這裡沒有按照順序操作,雖然也沒出什麼問題,但最好還是按照大家普遍的順序進行操作。
我們檢視一下服務的啟動情況:
下節我們們講如何開機自動啟動nfs。
所遇錯誤:
/etc/init.d/nfs-kernel-server: 沒有那個檔案或目錄
解決方案:
沒有配置、安裝nfs
linux下配置nfs服務
1、安裝
#centos下
yum install nfs-utils portmap nfs4-acl-tools
#debian下,kernel-server相當於server,common是client
sudo apt-get install nfs-kernel-server nfs-common portmap
2、配置
#建立共用目錄
sudo mkdir /home/nfs
sudo chmod 777 /home/nfs
#配置目錄、許可權等
vim /etc/exports
/home/nfs *(rw,sync)
#啟動,debian
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
#啟動,centos
service portmap restart
service nfs restart
#更新了/etc/exports後,使用如下命令重新整理:
sudo exportfs -r
3、客戶端
#顯示nfs伺服器上exports出來的目錄
showmount -e 10.61.1.31
export list for 10.61.1.31:
/home/nfs *
#掛載到本地/mnt/nfs
mkdir /mnt/nfs
chmod 777 /mnt/nfs
sudo mount -t nfs 10.61.1.31:/home/nfs /mnt/nfs
#解除安裝,必須mount的shell程序退出後才能執行
sudo umount -f /mnt/nfs
所遇問題:centos6.5
portmap: 未被識別的服務
解決方案:
由於在6系列裡面,portmap已經改名了 ,
6系列需要使用 service
rpcbind
start啟動
[root@unix-big-bang ~]# service portmap start
portmap: 未被識別的服務
[root@unix-big-bang ~]# service rpcbind status
rpcbind (pid 1312) is running...
[root@unix-big-bang ~]#
ubuntu配置nfs步驟
主機host os ubuntu 8.04 kernel 2.6.24 ip 192.168.1.110 netmask 255.255.255.0 板子 os mv4.0 kernel2.6.10 ip 192.168.1.119 netmask 255.255.255.0 1.install n...
linux下nfs檔案共享步驟
建立nfs檔案共享 1.關閉防火牆和selinux 2.安裝相關軟體包 nfs utils portmap 3.主要配置檔案 etc exports 4.啟動相關程序 service portmap start service nfs start 5.配置共享目錄 vi etc exports nf...
Linux伺服器配置 搭建NFS伺服器步驟
一 安裝配置nfs伺服器 1 要使nfs伺服器提供服務,必須啟動inet portmap,nfs 和 mount 這4個守護程序,並保持在後台執行。2 規劃好要共享的分割槽或目錄 3 定義客戶機的引數 4 配置nfs主配置檔案 etc exports 5 重啟nfs服務 1.配置 etc expor...