Fedora 38 上的 NFSv2

Fedora 38 上的 NFSv2

我的 NFS 文件系统有问题。客户端无法连接到服务器,但服务器收到请求并授予客户端访问权限。配置如下。

NFS服务器

  • 费多拉 Linux 38
  • /home/user/nfs/带有 mod 0777 的文件夹
  • IP 地址是193.232.173.2
  • /etc/export内容:
    /home/user/nfs 193.232.173.251(rw,sync,no_acl,insecure,no_root_squash)
    

NFS客户端

  • 基于 UNIX 的无盘操作系统(oc2000,也称为 RT OS BAGET,不是 UNIX 本身,只是基于 UNIX)
  • IP 地址是193.232.173.251
  • NFS 通过程序代码使用以下命令行挂载:
    mount -t nfs -o rsize=4096,wsize=4096 193.232.173.2:/home/user/nfs /nfs
    

没有其他可用的命令行选项

结果

NFS 已安装,但客户端无法读/写(也可以通过程序代码)。我发现 NFS 服务器不支持 NFS 版本 2,并且客户端仅适用于 NFSv2。

我构建了支持 NFSv2 的 Linux 内核(版本 6.6.8),但没有连接。客户端只发送上面的命令,然后什么也没有发生。

系统日志包含以下日志:

rpc.mountd authenticated mount request from 193.232.173.251:1023 for /home/user/nfs (/home/user/nfs)
rpc.mountd granted access to /home/user/nfs for 193.232.173.251
rpc.mountd nfsd_fh: found 0x55f566742490 path /home/user/nfs
rpc.mountd nfsd_fh: inbuf '193.232.173.251 4 \x408a0300938534b9'
  • 我尝试了客户端选项的组合/etc/export- 没有帮助。
  • 我尝试切换设置/etc/nfs.conf- 也没有帮助。
  • [nfsd]的部分/etc/nfs.conf如下:
    debug=1
    udp=on
    tcp=on
    vers2=y
    vers3=y
    vers4=n
    vers4.0=n
    vers4.1=n
    vers4.2=n
    rdma=y
    rdma-port=20049
    

我什至查看了 Linux 源代码以找到上面给出的消息 - 但没有结果。

请你帮助我好吗?我还应该做什么才能使客户端和服务器通过 NFS 工作?

UPD。以下是 rpcinfo -p 的输出

    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100024    1   udp  44697  status
    100024    1   tcp  37411  status
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  60925  nlockmgr
    100021    3   udp  60925  nlockmgr
    100021    4   udp  60925  nlockmgr
    100021    1   tcp  46315  nlockmgr
    100021    3   tcp  46315  nlockmgr
    100021    4   tcp  46315  nlockmgr

答案1

谢谢大家,问题已经按照原来的方式解决了。我降级到 Fedora 22(根据此客户端计算机上的文档),配置了 RPC 和 NFS……并且它可以工作!客户端确实连接到服务器,甚至读取和写入文件!

答案2

在 NFS 服务器上(你说的是 Fedora 38)用于故障排除你会想要

  • 关闭 SELINUX,每次启动后手动关闭,setenforce 0或者修改/etc/selinux/config并设置为permissive
  • 关闭防火墙
  • 真正检查/etc/nfs.conf所有地方的语法是否正确vers<num> = y

首先想到的是现代 NFSv4 全部位于一个端口上...2049。NFSv3 位于端口 111 上,此外还有mountdstatdlockdnfsd、的其他端口sm-notify。您将/etc/nfs.conf在 Fedora38 中的 nfsv4中看到(现在)已注释掉的内容。对于初学者来说,要允许默认为 NFSv4 的当前 Linux 发行版回退到 NFSv2,您需要确保您的 nfs 服务器正在侦听正确的端口(而不是对它们进行防火墙),以了解您的 nfsv2 客户端正在谈论的所有内容。

相关内容