我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:, M: h) U9 I5 l! i3 D0 U
" o! c. d; c! z9 i! JNFS服务器ip:192.168.183.88。
8 x* }% N ^% s1 s& z* @8 { E& d
客户端ip:192.168.11.89。
$ _ H: B. b# ` t* Q' m* X8 ^( y/ T: W( o) Y! G
NFS服务器配置
; L- P1 y' O4 h- L W3 o$ I) F M* y! S7 _$ X
yum -y install rpcbind nfs-utils3 O. @, O+ `/ B; K# F
4 }; a% {2 e& f* P#客户端跟服务端都需要执行
* U2 B5 \! k2 x( }创建共享目录+ ^* P5 i n- ?- n$ J/ v. o
在服务器上创建共享目录,并设置权限。7 M/ c4 A( w0 ]1 d7 A. r
: W$ B1 n" O9 Q0 b3 \
mkdir /data/share/+ t5 ]2 q2 T8 V8 g% Q* ]# ^0 Q4 u
chmod 755 -R /data/share/
' {+ a* ~& ^, F5 r# t( @- S7 r配置NFS
W9 D* f. g$ Anfs的配置文件是 /etc/exports ,在配置文件中加入一行3 b1 N9 B* V7 ]
2 w1 N5 Z6 i2 h4 w% \% B
/data/share/ 192.168.183.89(rw,no_root_squash,no_all_squash,sync)
: ^, G' R: a; }7 y" L( j#这行代码的意思是把共享目录/data/share/共享给192.168.11.34这个客户端ip,后面括号里的内容是权限参数,其中:
, w" B& `) t( ]; w" r9 s2 a#rw 表示设置目录可读写。- S) g3 o6 t* h, G
#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。% w3 f& i9 x* y& }- ? } F$ q8 Z7 ]
#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。% w' Y _. i4 i* ~
#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。
5 v8 s* ~ t2 m, |
[# ^2 R" M, P8 j0 h) W3 X2 D- H4 O2 t' x" r- X4 ?
#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:
+ B+ n4 Q6 ]$ o& w9 Z% K5 O6 H' J, A% {' v o0 @7 u
exportfs -r! w) L$ M( G& \1 w& p
设置防火墙- Y M! g1 o: {( S
#如果你的系统没有开启防火墙,那么该步骤可以省略。
+ j) T5 y$ M! n. Q$ q#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。* `$ y8 J8 T# ?# B1 ~5 ~0 n w
#修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:2 }4 x6 X0 `: K4 N
* n0 Y5 A7 C9 O; X. G, VRQUOTAD_PORT=1001
3 m0 `( g: w ]8 Y/ v: U, O" ?LOCKD_TCPPORT=30001
4 m5 `) D" I7 d5 T. ?& g2 m% CLOCKD_UDPPORT=300021 a; _7 j4 D! D$ {* k
MOUNTD_PORT=1002
- U$ m+ Y8 \/ B0 B7 [0 [" b
3 r2 T0 j' G! Q' o0 D#保存好后,将端口加入到防火墙允许策略中。执行:# g1 L# Y1 V6 y, w/ c
9 ]! {& F7 W u; M3 jfirewall-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: P/ q+ ^) [! S6 d! U- o. ~
firewall-cmd --reload' _0 W: _( ?5 m+ a$ T+ P( x
启动服务
: G, E5 @$ n' A9 T. K& `) b3 C- b, \ q2 J: Q5 o8 z# b
systemctl start rpcbind
9 [4 n/ @$ @& d& a' s9 |& l3 msystemctl start nfs
. Z b7 T( r/ e& u" F. m6 G0 j
% Q+ N7 K1 ~9 i }8 ?加入开机启动:: }6 x' O. D: ?# u
) b4 ?# O& h9 N4 l4 o* u" e; _2 wsystemctl enable rpcbind
% z; a0 p6 H" y) Fsystemctl enable nfs8 x$ O( Y+ e5 ?$ q
#nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。+ x2 z5 i: J8 w' `; h: N9 G
c9 Z6 A5 N" G% ?9 ?* t#服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:7 t9 d( x* }- p+ d# K% F
+ o# N7 [& D1 O8 ]: B[root@localhost ~]# showmount -e localhost
9 ^; w7 h/ P% o& n1 y1 fExport list for localhost:/ P$ m$ ^0 }+ z% z
/data/share 192.168.183.89* z) K. M/ ~# j9 `
) e. \; D/ y7 P3 _/ }. O( Z2 B
客户端配置3 Z/ P9 v6 ~% n/ d) {6 A: D' {
/ Q- Y2 d8 C- T+ a
挂载远程nfs文件系统
+ |3 n( _1 q" t: r- H% I查看服务端已共享的目录:
* D7 I* y/ O1 B$ N0 a* _( W) U4 ?7 C+ {
3 t" e. B# `1 J* p: @% h8 `[root@master ~]# showmount -e 192.168.183.88
" L2 B* w+ L8 D, ^4 P# UExport list for 192.168.183.88:
1 T/ d: E$ G r. [/data/share 192.168.183.89
% G8 e3 d8 @( m* H( V$ K+ B
# [3 e8 { j5 P0 H4 U建立挂载目录,执行挂载命令:0 `% j! l1 d% k. D: u3 U3 E
$ P. G: q8 Q$ m: F& jmkdir -p /mnt/share
! Z& } Z7 A. M* M, lmount -t nfs 192.168.183.89:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3: s2 c" c, j1 X+ }0 D* B- m; `5 F) P
8 L* J$ _* g/ C- w如果要解除挂载,可执行命令:( V/ u) l7 I5 J8 q Q
! h/ u2 w& ^2 ^! I* Zumount /mnt/share
( K, {6 J* t+ {, t% m! l查看挂载结果,在客户端输入 df -h
; I, L" | y! P8 t1 l6 _! R9 [( c: u0 H8 d
#192.168.183.88:/data/share 46G 5.0G 41G 11% /mnt/share
3 ~* R8 c1 n0 j# n0 M————————————————
$ ?8 I% D$ l' p) \版权声明:本文为CSDN博主「DaTieGuoDun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。! z% L' H K/ P9 r0 p, `6 R1 ]
原文链接:https://blog.csdn.net/qq_45805471/article/details/122808203 |