我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:- A8 Z7 f2 B" u4 ~8 b( b! T. |
F2 z& F; H( u( V' p
NFS服务器ip:192.168.183.88。" Z# ~; d2 w% }0 G% }! @
9 a1 @/ T, x6 u$ Y3 A* F6 g% N
客户端ip:192.168.11.89。& B+ M; I* j* {$ Y7 T
& L0 V9 N# w1 [0 d+ o+ A6 D. I
NFS服务器配置
+ w: m9 z- t" J2 \: u# i. ^
/ z; c7 m+ q& u# iyum -y install rpcbind nfs-utils- J. m) s6 o! B6 _5 z7 E" N: T8 @
" ^9 I8 J, K0 V2 ^! F: x
#客户端跟服务端都需要执行
, ]& K; \# b/ y* s- m; o& a' N e% g创建共享目录
0 o# n( p/ u7 K5 ^6 T' h在服务器上创建共享目录,并设置权限。
3 t4 k/ r7 A' c* P! D1 O! `# A3 ]% |. l& b
mkdir /data/share/- u" u9 G0 L( S1 h. Q1 U, t% p
chmod 755 -R /data/share// D! T* S% A6 @1 D* _+ b
配置NFS
# J4 _. m% i, d3 nnfs的配置文件是 /etc/exports ,在配置文件中加入一行
! d2 A: g1 r% r& E; ^* j
5 @0 S+ e9 U7 h ^/data/share/ 192.168.183.89(rw,no_root_squash,no_all_squash,sync)
0 h% G; D; {: D3 j#这行代码的意思是把共享目录/data/share/共享给192.168.11.34这个客户端ip,后面括号里的内容是权限参数,其中:* b% T* [- R0 T$ [3 ^ \0 _( r
#rw 表示设置目录可读写。
, I1 X) [' n! J8 d5 {7 l3 v#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。' H5 R- Y0 b: D( D) q2 d
#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。% D) p9 X. S+ a3 O5 z8 E
#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。
! U) l0 x, b) ?/ J2 o$ V
2 u7 }+ ]) `8 Z# c, N" O0 H
1 u9 c$ [" h) f& g3 x#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:( ~) t: t1 D, R2 M
: v0 R7 r C6 w- A; A7 }) F }exportfs -r
B6 ^' r O' Z- [+ u2 w6 R7 F# G设置防火墙
# m5 x: y( j2 e/ g* q#如果你的系统没有开启防火墙,那么该步骤可以省略。
1 m! q# X, J3 j9 T#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。0 O( L0 a3 C2 O. i: |* ]1 L
#修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:
0 }' s- H$ A6 F1 S/ k! o0 S5 C) m* L$ M
RQUOTAD_PORT=10013 v& ~- o: T- z0 _' L9 G
LOCKD_TCPPORT=30001
8 I( X7 V+ Y5 E1 zLOCKD_UDPPORT=30002
* v' e9 C+ L) P; cMOUNTD_PORT=1002
* u ]# t6 j8 S; R
" {. p2 |% A, k" X. S6 h, a#保存好后,将端口加入到防火墙允许策略中。执行: \8 {3 ^$ E# z
0 C% Z. w! j0 A2 e7 L* wfirewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent9 o8 D& W: N9 \# T' Y% R2 z2 g
firewall-cmd --reload" v% V1 ^3 e" _
启动服务 2 V' t8 M% X, Q& M( y8 p
3 I( C& g- r: rsystemctl start rpcbind
$ L* u; @7 A# r. z- p$ W7 Ssystemctl start nfs# ?$ N. B, ]7 R& u
& `; w; F9 D5 ^/ z' `
加入开机启动:
* h6 N: S3 c7 k$ A! \. R# i" ]: Q8 V$ ?
systemctl enable rpcbind 6 M: S$ S* V1 e; f
systemctl enable nfs6 e% O4 w i! r& Q% o" ~6 O T1 v. d
#nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。1 u* v5 _1 |$ L- A
+ N5 M" U+ _" Y! d/ W# j- ~
#服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:
, l' ~! C5 d3 @$ t' S
) H _" m& o% X+ K3 m, I- Y/ N[root@localhost ~]# showmount -e localhost5 f- o9 \1 p+ q; _- A
Export list for localhost:
0 m; Z3 m! m! D' D, d, ~* r* ~/data/share 192.168.183.89
6 j/ ^; k# J% q% X B( L
! i4 R/ g0 f% s, Y$ P* y客户端配置
! X; ^2 f; @; v" R2 g. n5 a8 k- j; c3 G/ n( f# R, _
挂载远程nfs文件系统
& Z; H9 z7 Q3 m. K: G查看服务端已共享的目录:) u K9 c! l. t/ l$ b0 N+ a1 Z
3 y+ j/ _) l% [0 z& W3 p% ~[root@master ~]# showmount -e 192.168.183.88- N3 g5 C) D+ r
Export list for 192.168.183.88:* r5 w- C1 t* @5 i7 ?
/data/share 192.168.183.896 C- _" _! Z8 l3 t+ b
, @) P2 K% A/ _9 g1 m7 K建立挂载目录,执行挂载命令:+ p/ T7 k7 P) g" U* U" \
# t0 j/ \5 ]8 E+ h$ k0 }mkdir -p /mnt/share9 {" _7 n6 t6 k3 W
mount -t nfs 192.168.183.89:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3. G- C9 f2 N. R9 l$ d
+ ^* e+ s3 V: j5 c如果要解除挂载,可执行命令:
! Y) ` Z$ P) Q4 C8 K* `6 r
9 f9 h; L, Z' W# Y g8 bumount /mnt/share
7 z3 M/ Z/ M' f( i查看挂载结果,在客户端输入 df -h
7 ]. @* t6 P' ^$ S: Z9 m, @( S6 l) C; y9 q4 s" Y7 S
#192.168.183.88:/data/share 46G 5.0G 41G 11% /mnt/share7 k, Q# A' b! S) [& J
————————————————
8 X# u8 F9 K: [版权声明:本文为CSDN博主「DaTieGuoDun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。5 _+ A4 i0 D' R
原文链接:https://blog.csdn.net/qq_45805471/article/details/122808203 |