我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:& R1 }; U( I) }; x
: K% @, r' H0 g; r1 n5 e+ ENFS服务器ip:192.168.183.88。. g7 T: m2 O% o& O% O
2 C5 ~7 Y# e" l4 w8 c& X4 o# K
客户端ip:192.168.11.89。
( f- i7 m" f+ o4 b- z/ R+ Z2 l
0 A, d- N! y6 GNFS服务器配置 6 A' B' L. O! _# R- L6 G# k
" \( \$ }/ g3 G# M/ vyum -y install rpcbind nfs-utils6 ?; {+ b' C* R5 N* R1 w9 G$ N
# t$ K) v9 |) U% I/ V+ ]# u
#客户端跟服务端都需要执行
& |. o9 Z1 u5 Z3 z- V# c7 [0 K( e1 v创建共享目录
: c5 V7 E5 g C在服务器上创建共享目录,并设置权限。
5 M$ _1 R7 q! H/ f. d+ e6 ^7 n. a4 d6 f) ?6 H
mkdir /data/share/3 V# [. A0 c% l6 U( E/ S1 r! f: P
chmod 755 -R /data/share/1 O" q& g0 I0 R9 l# T+ [1 v
配置NFS
/ D( n* k3 t* tnfs的配置文件是 /etc/exports ,在配置文件中加入一行) u" X n0 ]5 O: [5 ^1 @
. h6 b* L# x: r8 j" _( _- t! t
/data/share/ 192.168.183.89(rw,no_root_squash,no_all_squash,sync)
( D r( K8 q" g, I#这行代码的意思是把共享目录/data/share/共享给192.168.11.34这个客户端ip,后面括号里的内容是权限参数,其中:. B* S" {0 {/ I {# X" F, d
#rw 表示设置目录可读写。
$ S$ f. `( A1 {; T$ t#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
N1 M6 f& {: H& E# j+ B4 D3 [3 K#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。 V; s2 e, i @
#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。 x2 R" @- ~$ ~. [
0 }- M" F, s9 [2 O0 r/ z. ~2 y
+ `. L- d6 z+ O% L, O, }' o#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:7 e; r- D0 Y* n2 Z5 O
, g- W7 N! M8 h0 l: b. A
exportfs -r1 j6 c1 Z" F& L f* S! P
设置防火墙
; ^3 ~" k3 \3 ]" @#如果你的系统没有开启防火墙,那么该步骤可以省略。9 R% s8 Y, m. `( c& z' f# P
#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。
! L/ Y$ t8 U# k, ] s1 D#修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:/ E' x/ P: F' Y. T7 ^
. F q5 B& v" D1 V
RQUOTAD_PORT=10012 u' g- g" B( V( {. G, O/ N
LOCKD_TCPPORT=30001
* g2 a$ k( Y! r. `0 C$ y E3 ALOCKD_UDPPORT=30002
+ U1 `+ Y* F% ?MOUNTD_PORT=1002
: t0 ?; N" {" ]- h1 o
- ~) R6 h c! l2 l$ j: }#保存好后,将端口加入到防火墙允许策略中。执行:, a1 A. I8 Y* e
5 X# c5 |3 C* c1 D& r5 y3 f
firewall-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 ]. C* G: }4 \
firewall-cmd --reload
6 E: ?% R2 `: M% U& c% Q启动服务
2 A$ w/ Y6 V) P* n( e7 D, W3 [ \1 k- k- f6 w+ i' e9 r
systemctl start rpcbind/ p7 z3 j0 V8 A
systemctl start nfs8 r: i0 W G9 M7 L- i5 e: q
/ k% ?" H2 K' c加入开机启动:' t$ e! @7 h5 X7 l
4 A! P& ?! l' j2 N- dsystemctl enable rpcbind
+ s/ i6 Q" [! H3 x' r$ k3 ~0 `systemctl enable nfs( E( v, R, C1 B$ d+ M: x$ A0 {
#nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。
$ T2 f# j, V8 ]! G) h: L5 c
+ w2 M# V6 X$ @8 E+ _) I#服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:
& S/ j5 `1 z+ e% l7 @% | x# u. i3 ?+ d
9 t! i5 ^& k7 s$ s5 m% y4 @& h' x[root@localhost ~]# showmount -e localhost7 u8 e& B! c4 m' d5 i
Export list for localhost:6 b* P4 D. e* M0 h
/data/share 192.168.183.89
5 y0 u* H8 L3 n
8 u" A( \) ]- ^5 c- @5 j* ~4 {客户端配置7 G1 L2 d/ R9 @* r, L/ I( Q
% @! Q+ G" @# L) k2 n2 Y挂载远程nfs文件系统 4 S" t3 r+ C9 p# s+ q- b( y4 |
查看服务端已共享的目录:8 h5 K6 G, |, l8 _
4 X+ Y7 a( z) G4 d V* [
[root@master ~]# showmount -e 192.168.183.88
6 ^# y; n# z+ w5 k1 Q. H% wExport list for 192.168.183.88:
& C& I% a1 C: V" A: |/data/share 192.168.183.89" o* Y$ I1 P- c/ j: r G" e# x
8 B* I$ _8 j8 p
建立挂载目录,执行挂载命令:4 F% |" S( r/ ?* `
7 x3 N( r& X: J4 ]( J
mkdir -p /mnt/share
; v& Q; |+ t; b* g, _ amount -t nfs 192.168.183.89:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=36 h: i$ v m( S O
a, I, H7 u6 _$ A
如果要解除挂载,可执行命令:
3 Q6 D$ y, s1 m- k N: M1 O5 P2 F
7 Y: t* X% z$ Xumount /mnt/share1 V4 }4 y# m# B; _$ ?- j
查看挂载结果,在客户端输入 df -h% I$ U& B% g; A. c2 J! m2 T) ?
! }8 H/ h1 G9 N' \1 a+ N/ R
#192.168.183.88:/data/share 46G 5.0G 41G 11% /mnt/share
% Z* }9 z/ a! W! K( @1 V————————————————
: }+ W; ]9 I5 U" k i/ v版权声明:本文为CSDN博主「DaTieGuoDun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
3 ]1 c* G- X! {: x e. ~) R" d原文链接:https://blog.csdn.net/qq_45805471/article/details/122808203 |