首页 新闻 会员 周边

nfs客户端mount -a 报mounting 时被server端access denied?

0
[已解决问题] 解决于 2026-03-11 14:43
在服务端journalctl 直接输入命令看到尾部能看到客户端mount -a挂不上的原因,但是为啥我journalctl -u nfs.service看不到日志
 
问题补充:

解决方案:journactl -u nfs-mountd.service,可以看到该客户端请求过来的ip不在服务端的/etc/exports里面,什么原因呢,是因为客户端配置了多个网卡,两个默认网关,请求流量走的是另一个网关导致的,所以删掉客户端的不相关的网关即可

 

所以不知道是哪个服务导致将所有该服务的子服务都journalctl -u

 

还有一点,就是journalctl -u 服务名,如果服务名不对,如:

journalctl -u aaaa

都会打印一行日志:-- Logs begin at 时间点,end at 时间点(即jounalctl所有日志的起始结束时间),不要误以为打印了日志导致可能是服务名不对,这是不相关的日志

所以先执行systemctl  list-units |grep -i 服务,然后对running的jourctl -u 子服务

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1526
提问于:2026-03-11 14:26
< >
分享
最佳答案
0

journalctl -u 只能查看由 systemd 启动的服务的日志。如果你的 NFS 服务是手动启动的(比如直接运行命令),或者是通过 SysV 脚本启动的,它的日志就不会进入 journal 。

  • 验证方法:运行 systemctl status nfs.service 或 systemctl list-units --type=service | grep nfs

    • 如果命令返回 "Unit nfs.service could not be found" 或列表为空,说明该服务没有作为 systemd 服务注册。你需要去检查传统的日志文件,通常位于 /var/log/ 目录下,比如 messages 或 syslog文件。

    • 我执行systemctl list-units --type=service | grep -I nfs,显示:
      nfs-idmapd.service. loaded active running NFSV4 ID-name mapping service
      nfs-mountd.service  loaded active running NFS Mount Daemon
      nfs-server.service.   loaded active exited NFS server and services
      nfs-state-notify.service.  loaded active exited Notify NFS peers of a restart
      nfs-state.service.     loaded active running NFS status monitor for NFSv2/3 locking

      当 grep 出多个服务时,确实意味着这个功能是由多个服务协同完成的。这是一种模块化设计,每个服务负责一个专门的子功能

    • systemd 服务状态的核心!loaded active 后面跟着 running 或 exited 其实并不矛盾,反而体现了 systemd 对不同类型的服务采用不同的管理方式
      loaded active running 这种格式其实是三部分信息:
      
      部分    含义    可能的值
      loaded    服务单元文件是否已被加载到内存    loaded, not-found, error
      active    服务的高层状态(是否在运行)    active, inactive, activating, deactivating, failed
      running/exited    服务的详细子状态    running, exited, waiting, dead 等
      
      
      1. nfs-idmapd.service - loaded active running
      
      text
      loaded active running NFSV4 ID-name mapping service
      含义:这是一个常驻守护进程,一直在后台运行
      为什么:idmapd 需要持续运行,随时处理 NFSv4 的用户ID和用户名之间的转换请求
      类似服务:数据库服务、Web 服务器等需要持续提供服务的程序
      2. nfs-mount.service - loaded active running
      
      text
      loaded active running NFS Mount Daemon
      含义:mountd 守护进程,一直在后台运行
      为什么:需要持续监听客户端的挂载请求(MOUNT协议),随时响应
      作用:处理客户端的挂载请求,检查导出权限
      3. nfs-server.service - loaded active exited
      
      text
      loaded active exited NFS server and services
      含义:这个服务已经完成它的任务并退出了
      为什么:这是一个 oneshot 类型的服务,它的工作是:
      
      启动内核 NFS 服务(nfsd 内核线程)
      启动其他必要的辅助服务
      任务完成就退出
      关键点:虽然这个 systemd 服务退出了,但它启动的内核线程依然在运行
      验证:可以用 ps aux | grep nfsd 看到 nfsd 内核线程还在运行
      4. nfs-state-notify.service - loaded active exited
      
      text
      loaded active exited Notify NFS peers of a restart
      含义:同样是 oneshot 类型服务,执行完就退出
      作用:在系统重启后,通知其他 NFS 节点本机已重启(NFSv4 的 lease 管理)
      5. nfs-state.service - loaded active running
      
      text
      loaded active running NFS status monitor for NFSv2/3 locking
      含义:statd 守护进程,一直在后台运行
      作用:监控 NFSv2/v3 的锁状态,当客户端重启时恢复文件锁
*Tesla* | 小虾三级 |园豆:1526 | 2026-03-11 14:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册