Linux系統學習(四)Linux網路服務

ChanCherry、發表於2020-12-17

網路檔案系統NFS

1. NFS概述

網路檔案系統(NFS),多用於UNIX作業系統中,它是連線在網路上的計算機之間共享檔案的一種方法。在這個系統上的檔案就類似在本地計算機上的硬碟驅動器上,類似於Windows系統上的“網路上的芳鄰”,但NFS檔案系統更適合以字元命令方式完成網路之間的檔案共享。

NFS通常在區域網中使用,為了在不同的系統之間實現檔案的共享。提供檔案進行共享的系統稱為主機,共享檔案的計算機稱為客戶機。一個客戶機可以從伺服器上掛載一個檔案或目錄,然而事實上任何計算機都可以作為NFS伺服器或NFS客戶機,甚至可以同時作為NFS伺服器和NFS客戶機。
當主機系統把所共享檔案進行許可權指定後,遠端的客戶機就利用mount命令把remote所共享的檔案系統掛載在自己的檔案系統下,在使用遠端檔案時如何使用本地檔案一樣方便。

NFS特點

  1. 不佔本地工作站的磁碟空間,因為資料存放在另一臺計算機上,所以可以通過網路訪問。
  2. 通過同步寫磁碟可以實現分散式處理功能。
  3. 利用字元命令方式,高效能,靈活配置,即可實現遠端計算機檔案系統的共享。
  4. 擴充新的資源或環境時不需要改變現有的工作環境。
  5. CDROM和USB等儲存裝置可以在網路上被其他計算機使用,這樣減少了整個網路上的可移動介質裝置的數量。
  6. 使用者不必在每個計算機中都有一個home目錄,home目錄可以放在NFS伺服器,並且在網路上處處可用。

建立NFS的工作步驟

  1. CentOS7 系統實現NFS服務功能必須安裝nfs-utils、rpcbind軟體包,系統安裝軟體包,並啟動該服務。注意伺服器端和客戶機都要安裝!
[root@localhost ~]# yum install -y  nfs-utils   
[root@localhost ~]# yum install -y rpcbind
  1. 主機對所提供的共享檔案下放許可權。
  2. 客戶機針對主機下放的許可權把遠端檔案掛載到本地目錄上。

2. NFS的主機伺服器配置及啟動

(1)配置exports檔案

配置只需在配置檔案“/etc/exports”中提供共享檔案列表,然後啟動NFS服務即可。
exports檔案配置格式:
每行提供一個共享目錄的設定,這些目錄要保證已存在,例項如下:

#共享目錄 分配給客戶機的地址
/home/share	192.168.1.1/200(sync,ro) 192.168.1.210(sync,rw)
/home/public	*(sync,ro)
/home/ftp	192.168.1.11(sync,rw)

其中指定客戶機的地址非常靈活,可以是單個IP地址或者域名,也可以是指定網段中的客戶機。舉例如下表所示:

指定客戶機地址說明
192.168.1.10指定IP地址的客戶機
192.168.1.10/20指定網段中的所有客戶機
nfs.wdg.com指定域名的客戶機
*所有客戶機

設定選項如下表:

設定選項說明
sync使用者之間同步寫磁碟,這樣不會丟資料,NFS服務建議使用
ro輸出的共享目錄只讀,不能與rw共同使用
rw輸出的共享目錄可讀寫,不能與ro共同使用

(2)啟動NFS服務

需要使用NFS,必須安裝RPC服務,NFS的RPC服務,在CentOS5版本下名為portmap,在CentOS 6之後版本下名為rpcbind。
必須先啟動rpcbind服務,再啟動NFS服務,才能使NFS服務正常工作。

systemctl start rpcbind
systemctl start nfs

(3)開放NFS服務埠

CentOS7系統的防火牆預設沒有開放NFS服務的埠號,所以必須開放NFS服務相關的埠號,通過命令rpcinfo可以查到。

[root@localhost ~]# rpcinfo -p 192.168.140.135(主機IP)
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  39020  status
    100024    1   tcp  51470  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  58416  nlockmgr
    100021    3   udp  58416  nlockmgr
    100021    4   udp  58416  nlockmgr
    100021    1   tcp  36351  nlockmgr
    100021    3   tcp  36351  nlockmgr
    100021    4   tcp  36351  nlockmgr

從示例中可以看出,NFS服務的主要埠有以下幾種:
① portmapper埠(udp/tcp):111;
② nfs埠(udp/tcp):2049;
③ mountd埠(udp/tcp):20048。(隨機)

開放埠命令示例:

[root@localhost ~]# firewall-cmd --permanent --add-port=111/tcp 
success
[root@localhost ~]# firewall-cmd --permanent --add-port=111/udp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=2049/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=2049/udp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=20048/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=20048/udp
success
[root@localhost ~]# firewall-cmd --reload
success

注意:在CentOS 7系統中的NFS服務,有的是隨機埠號,且每次使用NFS服務,多個埠開放比較麻煩,可以把mountd等隨機埠號指定為固定埠號。若使用者使用NFS服務不考慮埠號,簡單的辦法就是使防火牆暫時開放NFS服務。

firewall -cmd --add -service=nfs

(4)顯示共享目錄狀態

設定了NFS共享目錄並正確啟動NFS服務後,可以利用showmount命令檢視NFS共享目錄狀態。

showmount [-ae] hostname

引數:
-a:在螢幕上顯示目前主機與Client所連上的使用目錄狀態。
-e:顯示hostname這臺機器的/etc/exports檔案中的共享目錄

[root@localhost home]# showmount -e
Export list for localhost:
/home/public *
/home/share  192.168.140.133

到這裡伺服器準備工作結束了,可以建立一個克隆機作為客戶機。

3. 客戶端掛載NFS檔案系統

客戶機要想掛載網路中的NFS檔案系統,必須檢視是否提供給客戶機訪問許可權,即客戶機是否滿足NFS主機指定的客戶機IP地址範圍。如果滿足,方可掛載使用。

(1)檢視NFS服務輸出的共享目錄狀態

提供NFS服務的主機IP為192.168.140.135,客戶機為192.168.140.133,則檢視主機NFS所提供的服務資訊的命令為:

[root@localhost home]# showmount -e 192.168.140.135
Export list for 192.168.140.135:
/home/public *
/home/share  192.168.140.133

從結果可以看出,NFS主機為該客戶機提供了兩個可共享掛載的目錄,即/home/public和/home/share。

(2)掛載NFS伺服器中的共享目錄

在客戶機上使用mount命令掛載NFS伺服器的共享目錄到本地目錄上,語法如下:

mount NFS 伺服器地址:共享目錄 本地掛載點目錄

示例:

[root@localhost ~]# mount 192.168.140.135:/home/share /mnt/share

其中,/mnt/share是客戶機本地的掛載點目錄,必須是已經存在的。

(3)檢視及解除安裝已掛載的目錄

NFS正確掛載到本地之後,可以用mount命令檢視目錄的掛載情況。

[root@localhost ~]# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
192.168.140.135:/home/share on /mnt/share type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.140.136,local_lock=none,addr=192.168.140.135)

解除安裝已掛載的目錄使用umount命令。

[root@localhost ~]# umount /mnt/share

相關文章