NFS服务相关端口定义

过会两年时间个人测试环境使用最多的虚拟化平台是PVE了,PVE中使用了独立的网络自管理系统软路由来保证内网拓扑,持久化资源则需要统一保存,虚拟机往往生命周期短,创建和销毁时间随使用场景而有长短。

在测试部署过程为共享资源使用了NFS,当然共享方案还有很多。以下记录了NFS相关的部分细节。

 

nfs软件包检索

在Linux/Unix软件包查询网站https://pkgs.org 上以nfs关键字检索,在此网站上可以获取包的依赖关系、包集成文件。以下链接可直接跳转到:

可以定位到在 Debian/Ubuntu 系nfs服务端包名称为nfs-kernel-server

可以定位到在 RHEL/CentOS 系nfs服务端包名称为nfs-utils,本文件主要讨论RHEL下的NFS。

os_releasenfs packages version / nameconfig file location
RHEL/CentOS7nfs-utils-1.3.0/etc/sysconfig/nfs、/etc/nfs.conf
RHEL/CentOS8 Streamnfs-utils-2.3.3/etc/nfs.conf
RHEL/CentOS9 Streamnfs-utils-2.5.4/etc/nfs.conf

除RHEL/CentOS7是两种配置文件方式共存外,在RHEL/CentOS8以后只有/etc/nfs.conf。

nfs-utils 服务端口

除111、2049端口是固定之外,其它端口可以通过配置参数加以固定。

nfs-client-server-topo

参考:

  1. configuring_and_using_network_file_services
  2. linux nfs
  3. 配置和使用NFS

 

防火墙设置分为以下几种情况:

 

配置服务端

 

 

检查NFS相关端口

可通过ss -nlpt,或 rpcinfo -q验证

 

 

其它端口设置位置

 

 

 

 

/etc/sysconfig/nfs

配置端口的几个参数

 

 

 

完整的默认参数/etc/sysconfig/nfs

 

/etc/nfs.conf

从nfs-utils进入2.x版本后,配置文件/etc/nfs.conf 参数语法采用ini语法,这与samba变得更加一致了。

 

与固定服务端口有关的几个参数位置变化

 

注意,如果lock

nfs-utils-1.3.x默认配置文件

 

nfs-utils-2.x默认配置文件

 

配置文件可以从 https://pkgs.org 网站检索到指定的软件包并下载解压查看,不需要进入服务器或测试环境。

 

 

Samba默认参数语法对比

 

NFS其它参数

 

设置nfs服务端使用指定版本

NFS版本比对

这部分列出了 Red Hat Enterprise Linux 支持 NFS 版本及其特性。

目前,Red Hat Enterprise Linux 9 支持以下 NFS 主版本:

红帽不再支持 NFS 版本 2(NFSv2)。

默认 NFS 版本

Red Hat Enterprise Linux 9 中的默认 NFS 版本为 4.2。NFS 客户端默认试图使用 NFSv4.2 挂载,并在服务器不支持 NFSv4.2 时回退到 NFSv4.1。之后挂载会返回 NFSv4.0,然后回退到 NFSv3。

v4.2版本的特性

以下是 Red Hat Enterprise Linux 9 中的 NFSv4.2 的功能:

NFSv4.1 的功能:

 

附录

 

端口111服务用途

111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。常见的RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等等。在Microsoft的Windows中,同样也有RPC服务。

NFS与RPC关系

服务端需要启动一个NFS服务,服务端要想给客户端提供服务,需要借助RPC协议,RPC协议是由rpcbind服务所实现的;在centos 5或者之前的版本叫portmap服务,centos6及之后的版本叫rpcbind服务,这两个都是一个服务,最终实现了RPC协议的通信。

NFS服务默认不会监听任何端口(启动服务,但不会监听端口),最终监听端口,实现RPC通信的过程是由rpcbind服务产生的RPC协议实现的。

整个流程为:服务端的NFS服务监听一个端口通过RPC协议监听的端口,再去告诉客户端RPC协议,然后NFS客户端通过本机的RPC端口回传数据信息到服务端NFS监听的端口,最终实现通信

如下是文字流程图:

showmount通信端口

使用[mountd]

 

参考文档 nfs_configure