我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:/ t+ }# l! _# D! o% E2 F$ V; Y
8 }* X/ J8 H/ H9 r+ j. s. v0 ^
NFS服务器ip:192.168.183.88。
+ R5 r/ C/ _! [6 Q. Y1 W* X( @7 \+ y) @/ o& x% s
客户端ip:192.168.11.89。
* g2 }7 {( W1 Z# b! y4 e/ w- j; J8 |$ f7 \
NFS服务器配置
! p0 a+ L) H* ]/ \; k5 o$ F' ~' U' e4 _$ [& K1 E: z
yum -y install rpcbind nfs-utils# e: ?) |, T# {# ~. y4 U- E5 k
8 r8 r1 w' r2 f z" q#客户端跟服务端都需要执行
- G9 x* I8 [1 J* P创建共享目录1 V3 [/ ]5 u0 h- P+ w" F3 q
在服务器上创建共享目录,并设置权限。
' Y. i4 A0 \6 K+ }5 `- A5 {
$ e8 ~: H- G6 L. i% b/ Ymkdir /data/share/* Z- J4 O: c0 p) e. x% u" ]. R
chmod 755 -R /data/share/
$ N' A3 J4 |1 \+ D配置NFS
. `! e9 u( _2 j2 Q( Lnfs的配置文件是 /etc/exports ,在配置文件中加入一行3 Y; N& k4 ~, F& y" a& S: {+ m' e4 Z
( M) W- W/ i2 c8 F- g3 C1 Y/data/share/ 192.168.183.89(rw,no_root_squash,no_all_squash,sync)
& Z- N/ D& a! V+ N: L& A#这行代码的意思是把共享目录/data/share/共享给192.168.11.34这个客户端ip,后面括号里的内容是权限参数,其中:
6 Z) X+ U8 ?% `#rw 表示设置目录可读写。7 N- @5 u5 N- ]8 L' x1 d: K
#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
" F$ m2 Z* P9 t5 r- |9 q3 R# p/ L#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。4 d+ p/ `0 v+ ~% S2 ~. l( Q
#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。7 | b( p0 L7 c
) H' \. u, p7 I/ o7 s7 @
, G2 b5 K* B7 f5 S#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:
~; t" ^7 U" j6 f$ z& [+ G7 _& L H9 d4 H8 L
exportfs -r% t- x A/ \5 t
设置防火墙
6 d4 @$ |" ]2 P2 N1 `+ `# w/ `, o#如果你的系统没有开启防火墙,那么该步骤可以省略。5 b% T2 h/ v+ B
#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。
( B; V6 ~, @! E/ @1 G#修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:
2 i \: h4 s" K* h7 t1 `
4 W8 ^* Z) u4 cRQUOTAD_PORT=1001! G9 p( P% O5 t( _5 S$ m% W# E
LOCKD_TCPPORT=300014 _7 `( m6 L o$ A1 e
LOCKD_UDPPORT=30002! s# k( ~; |7 f8 o- @2 N& `- V
MOUNTD_PORT=10024 H, {& U, L8 S7 @
! g9 J6 C; B/ d: Q% T0 f6 H! M#保存好后,将端口加入到防火墙允许策略中。执行:
$ r; D" x4 x9 \3 R- G, `* C) h
! _6 Z8 c( Y8 q/ E. B% Cfirewall-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 --permanent
) t: F( A' ~% A$ [; bfirewall-cmd --reload
. q+ [& w# E; O5 b' z. h- ~4 B启动服务 . m7 g6 F7 \* m5 j
* a- M9 J2 {( s& V7 {. V/ j5 Msystemctl start rpcbind
2 \! @- A+ J' d1 p: {$ wsystemctl start nfs
% F5 f4 h# A; f6 k0 g
4 i% L% g8 B, p/ ` {加入开机启动:
j9 |. m5 n4 {1 ?) _: k9 U E& x3 \6 w9 c2 W; F% j
systemctl enable rpcbind
) `7 v; W: h0 q5 Jsystemctl enable nfs
/ k% I' z3 t5 D#nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。
' c# t1 }2 s/ |+ o# n. H1 H
- x- p- M4 M( P& e; Q1 k#服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:+ r/ O1 `% r9 B; E7 y
: K0 U" a1 L3 b0 I' P
[root@localhost ~]# showmount -e localhost
5 r4 O! w) G+ i/ p. N% aExport list for localhost:) e. @. b; M6 w) N+ _2 B( p7 A3 d
/data/share 192.168.183.89
$ H9 E8 m. k$ \$ w+ i/ l% P& v7 l# s5 k0 f
客户端配置
- E; }7 B, q T
* V9 R) r4 O# @ t挂载远程nfs文件系统 R/ e% N5 A D5 A3 H2 _
查看服务端已共享的目录:3 D% H) s* a- ]
( [' V. x2 l7 u; o: D7 W" K[root@master ~]# showmount -e 192.168.183.88
8 a0 R2 J1 ]' F& p- D! Y2 qExport list for 192.168.183.88:) k; [- H) ~* ]# R
/data/share 192.168.183.89. s- F9 S2 z* G+ w
+ {$ @ q( \/ U& O建立挂载目录,执行挂载命令:
# ?2 E w) j, L& f1 Z3 J4 N9 a; e/ C8 q( ~
mkdir -p /mnt/share ~1 m# _2 z6 ?, n2 |% W
mount -t nfs 192.168.183.89:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3
- U. s2 `3 B! j
& v4 o2 f* I, d; Y9 Q* d如果要解除挂载,可执行命令:( g8 ~. D) W, j- R) y4 R/ W: }
2 l9 Y0 e' ~! X& ^; l
umount /mnt/share
, K0 O" f0 u* f/ q; |) R# N" |8 \查看挂载结果,在客户端输入 df -h' t9 v/ [+ @: R9 f1 ^ y- ?
7 w! y! X- B: x3 ]#192.168.183.88:/data/share 46G 5.0G 41G 11% /mnt/share Z u$ h' \( x: y7 W$ g6 N7 o; p
————————————————
3 R p: ^( t: r2 _版权声明:本文为CSDN博主「DaTieGuoDun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。) M V2 Q5 Z. v; o, {7 P8 R9 h6 B
原文链接:https://blog.csdn.net/qq_45805471/article/details/122808203 |