Linux安装NFS

前言

网络文件系统Network File System(NFS)

是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

是一种 CS 架构

安装

服务端

安装依赖

1
2
# rpcbind 会默认安装 rpcbind
sudo yum install -y nfs-utils

启动服务

1
2
3
4
sudo systemctl start rpcbind
sudo systemctl start nfs
sudo systemctl enable rpcbind
sudo systemctl enable nfs

配置共享目录

1
2
sudo mkdir /data
sudo chmod 755 /data

配置 nfs

1
sudo vim /etc/exports

写入下面配置

1
/data/ *(rw,sync,no_root_squash,no_all_squash)
  • /data: 共享目录位置。
  • *: 客户端 IP 范围,*代表没有限制 ,限制某个子网(192.168.0.0/24)。
  • rw: 权限设置,可读可写。
  • sync: 同步共享目录。
  • no_root_squash: 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)。
  • root_squash:当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
  • no_all_squash: 可以使用普通用户授权。

使配置生效

1
exportfs -r

重启服务

1
sudo systemctl restart nfs

验证

1
2
3
4
5
6
# 查询某 `IP` 的 `NFS` 服务
showmount -e 127.0.0.1
# 检查当前服务
exportfs
# 查询端口占用
rpcinfo -p 192.168.14.118

配置端口

  1. portmapper:默认 111
  2. nfs: 默认 2049
  3. mountd:使用默认892
  4. statd:使用默认 662
1
sudo vim /etc/sysconfig/nfs

添加

1
2
3
4
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
1
sudo vim /etc/modprobe.d/lockd.conf 

添加

1
2
options lockd nlm_tcpport=32803
options lockd nlm_udpport=32769

重启

1
2
3
4
5
6
7
# 重启服务
sudo systemctl restart rpcbind
sudo systemctl restart nfs
sudo systemctl restart nfs-config
sudo systemctl restart nfs-idmap
sudo systemctl restart nfs-lock
sudo systemctl restart nfs-server

防火墙

1
2
3
4
5
6
7
8
9
10
11
12
sudo firewall-cmd --zone=public --add-service=nfs --permanent
sudo firewall-cmd --zone=public --add-port=32803/tcp --permanent
sudo firewall-cmd --zone=public --add-port=32769/udp --permanent
sudo firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --permanent
sudo firewall-cmd --zone=public --add-port=892/tcp --add-port=892/udp --permanent
sudo firewall-cmd --zone=public --add-port=662/tcp --add-port=662/udp --permanent
sudo firewall-cmd --zone=public --add-port=2049/tcp --add-port=2049/udp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --list-services
# 查询需要开放的端口
rpcinfo -p 192.168.14.118

客户端挂载NFS

安装工具

1
sudo yum install nfs-utils

查询某 IPNFS 服务

1
showmount -e 192.168.2.140

输出

1
2
Export list for 192.168.2.140:
/data/ *

挂载

1
2
3
4
# 创建本地目录
sudo mkdir /mnt/data
# 挂载服务端目录到本地
sudo mount -t nfs 192.168.2.140:/data /mnt/data

本文地址: https://github.com/maxzhao-it/blog/post/de2905c4/