nfs安装

服务端

redhat & centos

服务端
yum install -y nfs-utils rpcbind

ubuntu & debian & deepin

搜索nfs-开头的软件
apt-cache search nfs-

服务端
apt install nfs-kernel-server

共享目录

1
2
mkdir -p /data/nfs/share
sudo chmod 666 /data/nfs/share

NFS配置文件

1
2
3
vim /etc/exports
/data/nfs/share 192.168.45.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
/data/nfs/share 192.168.20.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)

格式: 共享目录 客户机ip 共享方式(ro,rw) ro:只读 rw:读写 sync:同步 async:异步(默认)

/share (ro, sync) # ‘’表示所有ip
/share 192.168.2.250(rw, sync)

deepin linux:
(rw,sync,no_root_squash,no_subtree_check)

启动 RPC 服务

1
2
3
service rpcbind start

/bin/systemctl start rpcbind.service

查看 NFS 服务项 rpc 服务器注册的端口列表,有些系统需要sudo

sudo rpcinfo -p localhost

sudo rpcinfo -p localhost | grep nfs

启动 NFS 服务

1
2
3
sudo service nfs-server start

sudo /bin/systemctl start nfs-server.service

再查看一下rpcinfo -p localhost,可以看到有nfs了。

如何知道nfs service名字

1
2
3
4
5
6
7
8
9
10
sudo service --status-all | grep nfs
结果:
[ - ] nfs-common
[ + ] nfs-kernel-server
也可以
cd /lib/systemd/system/
ll |grep nfs
结果:
nfs-kernel-server.service -> nfs-server.service
nfs-server.service

也就是说 nfs-kernel-server也可以,简写就是nfs-server。

检查NFS配置

showmount -e localhost

如果列表为空,说明nfs配置有问题。
showmount表示查看目标地址的共享目录,下面客户端的时候,后面的地址就是服务端IP了。

修改后重新加载配置文件:

sudo exportfs -rv

当然修改后,你也可以重启nfs服务

开机自启

1
2
3
4
5
sudo chkconfig rpcbind on
sudo chkconfig nfs-server on

sudo systemctl enable rpcbind
sudo systemctl enable nfs-server

查看服务是否开机启动,支掉-a只显示active
sudo systemctl -la |grep rpc
sudo systemctl -la |grep nfs-

客户端

一般服务端安装完了,本地就有客户端

1
2
3
sudo apt install nfs-common

sudo yum install -y nfs-utils

查看目标地址共享目录

showmount -e 192.168.20.110

showmount -e 192.168.45.168

确认自身是否在允许的列表中
可使用ifconfig查看自身ip信息,确保自身的ip在允许的列表中

创建挂载点
使用mkdir命令创建一个共享目录的挂载点,如果已经有挂载点,可省略此步骤。

本次创建挂载点命令为
mkdir -p /data/nfs/client

挂载NFS服务器共享目录到本地

sudo mount -t nfs 192.168.20.110:/data/nfs/share /data/nfs/client

如果服务端共享的是/data/nfs/share目录,那么可以直接挂载它下面的子目录,它会自动创建,例如AAA:
sudo mount -t nfs 192.168.20.110:/data/nfs/share/AAA /data/nfs/client

为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
sudo mount -t nfs 192.168.20.110:/data/nfs/share /data/nfs/client -o proto=tcp -o nolock

卸载 NFS 挂载
sudo umount /data/nfs/client

验证

查看目录挂载
df -h

服务端执行
sudo touch /data/nfs/share/test
vim /data/nfs/share/test
‘Welcome to NFS server’

注意以下这种没有成功,因为share目录无法进入,权限是666,但是可以通过vi使用。

#sudo echo ‘Welcome to NFS server’ > /data/nfs/share/test

在客户端验证并写入

1
2
3
vim /data/nfs/client/test
Welcome to NFS server
come from client

服务端验证
vim /data/nfs/share/test

实现开机自动挂载

1
2
3
vim /etc/fstab  
192.168.20.110:/data/nfs/share /data/nfs/client nfs defaults 0 0
#192.168.1.3:/nfs_test /mnt/test1 nfs rw,tcp,intr 0 1

固定nfs服务端口

NFS启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。

1
2
3
4
5
6
vim /etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

重启
service nfs-server restart

查看结果
rpcinfo -p localhost



- - - - - - 本文结束 感谢您的阅读 - - - - - -
请我喝杯奶茶吧~蓝莓味的你觉得ok不?
0%