NFS是一種類UNIX系統間實現磁盤共享的網絡文件系統,支持應用程序在客户端通過網絡存取服務器磁盤中數據的一種文件系統協議。

1.服務器端

1.1.服務器IP地址

服務器IP地址:192.168.0.5

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器

1.2.安裝nfs服務
yum install nfs-utils -y

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_02

1.3.nfs配置文件格式詳解

nfs配置文件格式:

共享目錄1[客户端1(參數1,參數2)] [客户端2(參數1,參數2)]...
共享目錄2[客户端1(參數1,參數2)] [客户端2(參數1,參數2)]...

共享目錄:這個目錄使用絕對路徑。

例如:/home/nfs

客户端:IP地址、網段、域名等。

例如:

單IP

192.168.0.6


網段

192.168.0.0/255.255.255.0

192.168.0.0/24

192.168.0.*

域名

nfs.txzz8888.nw

泛域名

*.txzz8888.nw

所有主機

*

參數:

ro

只讀(默認)

rw

可讀、可寫

root_squash

客户端當前用户是root時,將被映射為nfs服務器的匿名用户

no_root_squash

客户端當前用户是root時,將被映射為nfs服務器的root用户

all_squash

將所有用户映射為nfs服務器匿名用户(默認)

anonuid

匿名用户UID

anougid

匿名用户GID

sync

同步(默認),同時將數據寫入內存和硬盤中

async

異步,先將數據保存到內存,再回寫硬盤中,這樣可以提高效率,但是服務器或nfs服務故障會出現數據丟失,不安全

1.4.編輯nfs共享目錄配置文件
vim /etc/exports

添加如下

/home/nfs 192.168.0.0/24(rw,sync,no_root_squash)

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_03

1.5.創建共享目錄
mkdir -p /home/nfs

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_04

chmod o+w /home/nfs	   #其他用户具有可寫屬性

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_05

1.6.使創建的目錄對客户端可用並更新
exportfs -a

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_06

1.7.啓動服務
systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server
systemctl status rpcbind nfs-server

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_07

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_08

1.8.查看nfs運行信息
rpcinfo -p

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_09

1.9.固定端口

nfs只有nfs服務和rpcbind服務端口號是固定的,其他的都是隨機端口,如果服務器重啓端口會變,可以設置成固定端口,固定前確保端口號沒有被佔用。

LOCKD_TCPPORT=40001

負責管理文件鎖,確保NFS客户端在併發訪問共享文件時的數據一致性

LOCKD_UDPPORT=40001

MOUNTD_PORT=40002

負責管理 NFS 共享目錄的掛載和權限驗證,通過固定該端口可以簡化防火牆規則配置並提升安全性

STATD_PORT=40003

處理文件鎖狀態的監控和通知,固定端口配置有助於簡化防火牆規則設置,避免端口隨機分配帶來的管理困難

RQUOTAD_PORT=40004

處理客户端的磁盤配額查詢

STATD_OUTGOING_PORT=40005

服務端在某些操作(如文件鎖定、狀態監控)中需要向外連接其他服務(如RPC綁定服務或遠程NFS服務器)

NFS服務端口號2049

網絡文件系統

rpcbind服務端口號111

客户端與服務器端的進程交互

編輯vim /etc/nfs.conf配置文件,修改前先備份。

mv /etc/nfs.conf.bak
vim /etc/nfs.conf

添加如下

[mountd]
port=40002
[rquotad]
port=40004
[lockd]
port=40001
udp-port=40001
[statd]
port=40003
outgoing-port=40005

編輯/etc/modprobe.d/lockd.conf配置文件。

vim /etc/modprobe.d/lockd.conf

添加如下

options lockd nlm_tcpport=40001
options lockd nlm_udpport=40001

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_10

1.10.重啓所有服務
systemctl restart rpcbind
systemctl restart nfs-server
reboot    #重啓服務器

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_11

1.11.再次查看nfs運行信息
rpcinfo -p

端口號已固定

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos系統_12

1.12.關閉selinux。
1.13.防火牆設置
firewall-cmd --add-port={2049,111,40001-40005}/tcp --permanent
firewall-cmd --add-port={2049,111,40001-40005}/udp --permanent
firewall-cmd --reload

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos系統_13

1.14.查看本機nfs共享
showmount -e

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_14

1.15共享目錄創建測試文件

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_15

2.客户端

1.1.客户端IP地址

客户端IP地址:192.168.0.220

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_16

1.2.安裝nfs服務
yum install nfs-utils -y

CentOS-Stream-10 搭建NFS網絡文件系統服務器_NFS服務器_17

1.3.查看服務器端共享目錄
showmount -e 192.168.0.5

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_18

1.4.創建本地掛載目錄
mkdir /nfsmount

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_19

1.5.將服務器端共享目錄,掛載到客户端指定目錄(臨時掛載)
mount -t nfs 192.168.0.5:/home/nfs /nfsmount

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_20

1.6.永久掛載服務器端共享資源
vim /etc/fstab

默認配置文件內容

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_21

創建全球唯一識別碼UUID

uuidgen >> /etc/fstab

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_22

配置文件添加如下

CentOS-Stream-10 搭建NFS網絡文件系統服務器_centos 10 NFS搭建_23


1.7.查看客户端掛載目錄中有無測試文件

CentOS-Stream-10 搭建NFS網絡文件系統服務器_Linux NFS服務器_24