我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:" Q' j4 h( v5 O+ b, [$ R2 D+ ^1 r
" G/ l( J( } z8 X: s# yNFS服务器ip:192.168.183.88。
& c' X4 z* N; {8 C& b$ H; e! O3 O5 C+ o- G+ U8 t& l. _
客户端ip:192.168.11.89。+ t/ A& g3 z' U4 |
9 {- H0 K4 _4 H+ x* ^. ]7 \NFS服务器配置 ( X" R7 Q% B& I+ c$ m6 B
, z# o/ G- F7 U6 \2 ]! R8 lyum -y install rpcbind nfs-utils
7 J& d: T, F6 \- r4 z
9 y# T* g& j6 n/ @$ t* L1 b$ h#客户端跟服务端都需要执行
$ ~" {. X3 a7 j2 B2 m5 W创建共享目录
; F; H8 U7 K: ^" r. h& {8 T在服务器上创建共享目录,并设置权限。
) b+ ]9 p E& `7 ]# d8 M
# [1 q! k. S1 h. A! y( \+ A2 [mkdir /data/share/0 B4 y6 l) k5 ~( a; a: p; _# N! t1 N
chmod 755 -R /data/share/
( t9 H& t D. f/ i9 `0 @配置NFS
; l6 m2 y0 ]3 Z0 N$ Z, _4 c- ?nfs的配置文件是 /etc/exports ,在配置文件中加入一行: k( Q Q: L* w4 Z6 N- s+ D4 b
4 U; _3 d: L( `/ i8 x1 l/data/share/ 192.168.183.89(rw,no_root_squash,no_all_squash,sync)' ]! l [0 ~% D C0 @
#这行代码的意思是把共享目录/data/share/共享给192.168.11.34这个客户端ip,后面括号里的内容是权限参数,其中:. f+ t, w5 @3 g m6 q/ n
#rw 表示设置目录可读写。
+ R: l5 d- ]; A2 L- k#sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。2 U1 F! T2 A: M2 H& C' W. k% e6 c
#no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
% R# A$ F4 a& M7 Z#no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。, ` w0 h' A0 Z- T3 J# j7 i
+ l1 u4 ^0 j8 r9 U. R# ?% l) A* _
4 {# _4 U h/ d: M: S o1 E* h#如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:8 U+ \4 S) n Z7 B+ b% V1 [6 J
; q6 \" C5 d; w! U
exportfs -r( j( A" Y2 ]' ~
设置防火墙
$ ^' |- [; r* e. T5 D1 T8 Q#如果你的系统没有开启防火墙,那么该步骤可以省略。
1 Z3 q5 @6 M6 C# M9 v0 _#NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。
9 ]5 r7 B, ^( v2 l1 f' V) h& K#修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:8 g2 K2 s+ _/ Q8 n" |
' r0 h( v, A9 r2 {7 S% @& {( l
RQUOTAD_PORT=1001$ }' _% F b% o. {$ V
LOCKD_TCPPORT=300017 H% }" F5 ?1 n" |. y
LOCKD_UDPPORT=30002# t. N# j, c4 }5 P0 v7 \' Y0 b
MOUNTD_PORT=1002
0 F8 E+ @( Z( H7 Q4 G) i7 ^2 X0 ~+ s# y" W( B5 J
#保存好后,将端口加入到防火墙允许策略中。执行:. Y: y) a: h: Y( W/ G: F
5 F. P. ~/ m% @. Z0 ~# v1 K- B
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 --permanent% D+ h5 e* N' ~9 C" _5 Z: f8 H! }* r
firewall-cmd --reload& c3 N. j$ U: _+ k8 ?
启动服务
* b; N# U5 }0 v1 g
2 n3 Z, u& M5 M$ ssystemctl start rpcbind1 T/ |8 D) c( o3 L1 M6 [( s
systemctl start nfs8 _8 X/ [# W K( z4 h
; Q! P9 s. m2 e# R& {加入开机启动:! }' t& V8 q5 A0 ]! s
3 X4 h8 V% B- h# isystemctl enable rpcbind
2 `: e8 {4 o( L" I( a hsystemctl enable nfs# g, F/ f `/ }
#nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。
, Q5 k( c/ F1 G6 T! I+ Q5 v, j; \ Y, _, k% Q2 P( q3 H
#服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:( o8 }4 v* e& _2 P# W: c; @3 O
* w! }# } w5 c9 s0 Z[root@localhost ~]# showmount -e localhost
, i- ]; P; Y1 S) Q# a+ iExport list for localhost:
& l/ E# u Z0 ?6 N5 A/ M; p/data/share 192.168.183.89, Q( R8 }: j% K( M+ j3 j
* c" k! I) k3 }+ r% F: N0 @ j客户端配置. e8 J, } b; j7 s
# V% K0 i5 m; L$ Q
挂载远程nfs文件系统
% `: A% k+ ]5 H# k! i. b查看服务端已共享的目录:
5 _) K% P0 z( G
0 N2 Z" Y5 o' A) l" _1 ]6 M[root@master ~]# showmount -e 192.168.183.88
/ N/ t, K3 R" H# g/ Q% zExport list for 192.168.183.88:
7 i4 Q3 y) |) X* r- T: j' w" T, }/data/share 192.168.183.89* ]! o9 Z& V* J7 q2 \
& E9 F3 M. c/ D, a4 c" W
建立挂载目录,执行挂载命令:
$ j- Z% @4 \- r+ d8 x9 W! V9 K6 Y9 \+ D4 P2 L P
mkdir -p /mnt/share
3 m9 f6 f8 a, V* i" A7 Nmount -t nfs 192.168.183.89:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3
. A R" C" ^0 i) [; x1 d$ L' O" P: X- |: {6 t- E
如果要解除挂载,可执行命令:
" ]# @- U# ^7 `# r& i; s# d; T3 Q
$ {! Y2 B b. Fumount /mnt/share1 u* X: O% G3 I! _. ]1 s& r2 m
查看挂载结果,在客户端输入 df -h; R; [8 P1 j/ R4 N& q" Y
! D, Y( @/ {- v: Q h* S' S9 t4 d#192.168.183.88:/data/share 46G 5.0G 41G 11% /mnt/share
8 a. l: j d6 _1 T————————————————
/ n0 u: i4 r1 W9 V2 |( Y版权声明:本文为CSDN博主「DaTieGuoDun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% D9 f; D' j/ N- n) z
原文链接:https://blog.csdn.net/qq_45805471/article/details/122808203 |