NFS

NFS

NFS簡介

NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件。
NFS適用於Linux與Unix之間實現文件共享,不能實現Linux與Windows間的文件共享功能
NFS是運行在應用層的協議,其監聽於2049/tcp和2049/udp套接字上
NFS服務只能基於IP進行認證,這也是它的缺點之一
NFS是基於rpc來實現網絡文件系統共享的

NFS優點

  1. 節省本地存儲空間,將常用的數據存放在一臺NFS服務器上且可以通過網絡訪問,那麼本地終端將可以減少自身存儲空間的使用。
  2. 用戶不需要在網絡中的每個機器上都建有Home目錄,Home目錄可以放在NFS服務器上且可以在網絡上被訪問使用。
  3. 一些存儲設備如軟驅、CDROM和Zip等都可以在網絡上被別的機器使用。這可以減少整個網絡上可移動介質設備的數量

NFS的工作機制

NFS服務器端運行着四個進程:
nfsd
mountd
idmapd
portmapper

idmapd //實現用戶帳號的集中映射,把所有的帳號都映射爲NFSNOBODY,但是在訪問時卻能以本地用戶的身份去訪問

mountd //主要功能是管理nfs的文件系統,且在客戶端使用nfs提供的文件前,還會驗證客戶端的使用權限。
//mountd的服務端口是隨機的,由rpc服務(portmapper)提供隨機端口號

nfsd //nfs的守護進程,監聽2049/tcp和2049/udp端口。主要功能是管理客戶端能否登錄服務器
portmapper //NFS服務器的rpc服務,其監聽於111/TCP和111/UDP套接字上,用於管理遠程過程調用(RPC)

配置nfs共享目錄

nfs的主配置文件是/etc/exports,在此文件中,可以定義NFS系統的輸出目錄(即共享目錄)、訪問權限和允許訪問的主機等參數。
//開啓防火牆
[root@cy ~]# systemctl start firewalld
[root@cy ~]# systemctl enable firewalld
//配置防火牆允許服務
[root@cy ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.161.100 service name=nfs accept' --permanent
success
[root@cy ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.161.100 service name=rpc-bind accept' --permanent
success
[root@cy ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.161.100 service name=mountd accept' --permanent
success
//確認查看防火牆配置
[root@cy ~]# firewall-cmd --reload
success
[root@cy ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.161.100" service name="nfs" accept
rule family="ipv4" source address="192.168.161.100" service name="rpc-bind" accept
rule family="ipv4" source address="192.168.161.100" service name="mountd" accept

[root@cy ~]# vi /etc/exports
/share 192.168.161.101(rw,anonuid=300,anongid=300)
[root@cy ~]# exportfs -r
[root@cy ~]# showmount -e 192.168.161.100
Export list for 192.168.161.100:
/share 192.168.161.100

//在客戶端上配置
[root@chen ~]# systemctl restart rpcbind
[root@chen ~]# systemctl enable rpcbind
[root@chen ~]# mkdir /yue
[root@chen ~]# mount -t nfs 192.168.161.100:/share /yue

//驗證,在只讀共享目錄上不能創建文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章