初步认识Linux下的NFS服务

NFS 服务概念 NFS(网络文件系统)是一种网络文件系统,允许网络上的计算机通过 TCP/IP 协议共享资源。
它的主要特点是客户端可以透明地访问远程服务器上的文件,就像使用本地文件系统一样。
目前NFS的主要版本是v2 和v3 (CentOS7 已经支持v4 )。
版本2 依赖UDP协议(网络可靠性较低),版本3 支持TCP/UDP双协议,提高了复杂网络环境下的稳定性。
NFS和RPC交互的机制。
NFS服务使用RPC(RemoteProcedureCall)结构来实现远程调用。
具体流程如下: 客户端发起请求:客户端应用程序通过本地调用发起NFS操作(如挂载共享卷)。
RPC封装和传输。
客户端存根将方法和参数组合成网络消息,并通过 RPC 请求将它们发送到服务器。
服务器端处理:服务器端存根解码消息并调用本地 NFS 服务(例如主 rpc.nfsd 进程)来执行操作。
返回结果:服务器将结果打包为RPC消息并发回,客户端stub解码并返回最终结果。
密钥验证环节:客户端连接时,服务器会发送随机cookie,用于后续访问认证。
它还支持IP/主机权限分配和tcpwrappers限制。
Redhat系统核心服务中的NFS服务组件:nfs:运行一个RPC进程来响应NFS请求。
nfslock(可选):使用 rpc.lockd 和 rpc.statd 处理客户端文件锁定请求。
rpcbind(以前的portmap):绑定网络套接字和RPC调用,是RPC服务的守护进程。
RPC调用函数:rpc.mountd:检查客户端连接权限。
rpc.nfsd:NFS主进程。
rpc.rquotad:支持磁盘配额管理。
设置 NFS 服务。
配置文件为/etc/exports,格式为主机限制的共享卷路径(可选)。
常用参数: 权限控制:ro(只读)、rw(读写)、root_squash(将root权限压缩到nfsnobody)、all_squash(压缩所有用户权限)。
数据同步:sync(立即写入磁盘,安全但性能较差),async(写入延迟,可能数据丢失),wdelay(合并写入以优化性能)。
网络限制:支持IP地址、域名、通配符(例如1 9 2 .1 6 8 .1 .0/2 4 或*.example.com)。
笔记。
如果系统没有找到NFS服务,则必须安装nfs-utils包;配置完成后,需要重启服务(systemctlrestartnfs)并检查防火墙规则(例如开放2 04 9 端口)。

Linux下如何挂载NFS共享

请按照以下步骤在 Linux 系统上挂载 NFS 共享目录: 1 . 安装 NFS 客户端组件 Debian/Ubuntu:sudoaptupdatesudoaptinstallnfs-common CentOS/RHEL:sudoyuminstallnfs-utils 2 . 挂载远程 NFS 目录。
使用mount命令设置NFS类型和远程路径。
格式为: sudomount-tnfs<服务器 IP>:<远程目录><本地挂载点> 示例:将 1 9 2 .1 6 8 .1 .1 00 的 /nfs/share 挂载到本地 /mnt/nfs: sudomount-tnfs1 9 2 .1 6 8 .1 .1 00:/nfs/shares/mnt/ 使用优化设置。
通过 -o 选项添加参数来调整性能和安全性。
常见的限制包括: ro:只读模式 rw:读写模式(默认) noexec:禁止执行二进制文件 nosuid:禁用 SUID/SGID 权限 nodev:不识别设备文件 async:异步 I/O(高性能但可能出现数据不一致)(例如:数据不一致) I/O 只读模式的高性能: sudomount-tnfs-oro1 9 2 .1 6 8 .1 .1 00:/nfs/share/mnt/nfs 4 . 配置开机自动挂载 编辑 /etc/fstab 文件实现开机自动挂载: sudonano/etc/fstab <在director末尾添加IP格式:re挂载点>nfs<参数>00 示例: 1 9 2 .1 6 8 .1 .1 00:/nfs/share/mnt/nfsnfsdefaults00 保存后;运行 sudomount -a 测试配置是否正确。
5 . 检查当前安装状态。
基本信息:mount|grepnfs 详细信息(包括磁盘使用情况):df -h|grepnfs 6 、挂载NFS共享目录。
要卸载指定的挂载点或远程路径,请使用 umount 命令: sudoumount <本地挂载点># 或 <远程路径> 示例:如果 sudoumount /mnt/nfs 询问“目标忙”,可以先退出挂载目录或 -f使用: sudoumount -f/mnt/nfs 检查服务器是否存在 Demissioned-FAQ /etc/exports 允许用户 IP 访问;示例: /nfs/share1 9 2 .1 6 8 .1 .0/2 4 (rw,sync,no_subtree_check) 修改后;需要重启 NFS 服务: sudosystemctlrestartnfs-server#CentOS/RHEL sudosystemctlkertustartnfs-times :验证网络是否畅通,防火墙允许 NFS 端口(默认 2 04 9 )。
版本不匹配:通过-onfsvers=3 指定NFS版本(例如sudomount-tnfs-onfsvers=3 1 9 2 .1 6 8 .1 .1 00:/share/mnt)。
按照上述步骤完成NFS共享目录的安装和管理。