跳至正文

安装nfs服务

​ NFS是一种基于TCP/IP 传输的网络文件系统协议。NFS网络文件系统服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,客户机可以像访问本地目录一样访问远程服务器中的共享资源

nfs端口:2049 RPC端口:111

安装服务端软件

apt install nfs-kernel-server

创建共享文件夹

mkdir /mnt/nfs

chmod 777 /mnt/nfs

修改配置文件

vim /etc/exports

末尾加上

/mnt/nfs (允许访问的ip)/24(rw,sync,no_root_squash)

关键字rwroroot_squashno_root_squashall_squashsyncasync
说明读写权限只读权限当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户同时将数据写入到内存与硬盘中,保证不丢失数据。 同步,效率低,但可以保证数据的一致性优先将数据保存到内存,必要时才写入磁盘,效率高,但有丢失数据的风险。 异步
配置文件参数

重启服务

systemctl restart nfs-kernel-server.service

二、安装客户端

安装客户端软件

apt install nfs-common

创建挂载到本地的目录文件夹

mkdir /mnt/nfs

检查连接是否正常

showmount -e (服务端ip)

有以下提示即为正常,否则检查防火墙、服务端是否正常

Export list for (服务端ip):
(服务端目录) (服务端IP)

挂载目录

1、命令挂载

mount -t nfs (服务端IP):(共享名称) (本地挂载路径)

mount -t nfs -o uid=1000,gid=1000,rw,hard,intr (服务端IP):(共享名称) (本地挂载路径) #nfsv4已弃用

编辑/etc/idmapd.conf文件,修改

 [General]
   Domain = yourdomain.local  # 与NFS服务器相同的域名

   [Mapping]
   Nobody-User = nobody #挂载的用户
   Nobody-Group = nogroup #挂载的用户组

mount -t nfs -o rw,hard (服务端IP):(共享名称) (本地挂载路径)

参数含义
-t nfs指定文件系统类型为 NFS
uid=1000客户端文件所有者:强制显示为本地 UID 1000 的用户所有
gid=1000客户端文件所属组:强制显示为本地 GID 1000 的组所有
rw读写模式:允许读写操作(默认值,可省略)
hard硬挂载:服务器无响应时无限重试(保持数据一致性)
intr允许中断:在硬挂载时可中断卡住的进程(如 Ctrl+C)

常用 NFS 挂载选项全集(-o 参数)

1. 基本控制

选项含义
ro只读挂载
rw读写挂载(默认)
soft软挂载:请求超时返回错误(可能导致数据损坏)
hard硬挂载:无限重试直到服务器恢复(推荐)
intr允许中断卡住的 NFS 请求(需配合 hard 使用)
bg后台挂载:失败后在后台重试
fg前台挂载(默认)

2. 用户映射

选项含义
uid=N客户端显示的文件所有者 UID
gid=N客户端显示的文件所属组 GID
noacl禁用 ACL 支持
context=...SELinux 安全上下文(仅 v4)

3. 性能优化

选项含义
rsize=N读缓冲区大小(字节),建议 8192-32768
wsize=N写缓冲区大小(字节),建议 8192-32768
timeo=N请求超时时间(0.1秒单位),默认 600(60秒)
retrans=N重试次数(默认 3 次)
noatime不更新文件访问时间
nodiratime不更新目录访问时间

4. 协议与连接

选项含义
tcp强制使用 TCP 协议(推荐)
udp使用 UDP 协议(已淘汰)
vers=3强制使用 NFS v3
vers=4强制使用 NFS v4(推荐)
port=N指定服务器端口(默认 2049)
noresvport使用非特权端口(<1024)连接

5. 文件锁与缓存

选项含义
lock启用文件锁(默认)
nolock禁用文件锁(用于旧服务器)
ac / noac启用/禁用属性缓存
lookupcache=all缓存所有目录查找结果
lookupcache=pos仅缓存成功查找结果(默认)

6. 安全相关

选项含义
sec=sys使用 UNIX UID/GID 认证(默认)
sec=krb5Kerberos v5 认证
sec=krb5iKerberos + 完整性校验
sec=krb5pKerberos + 加密传输

2、永久挂载

vim /etc/fstab

(服务端IP):/mnt/nfs /nfs nfs defaults 0 0

发表回复