You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置NVMe over TCP时执行nvme discover命令报错“Failed to write to /dev/nvme-fabrics: Connection refused”求助

配置NVMe over TCP时执行nvme discover命令报错“Failed to write to /dev/nvme-fabrics: Connection refused”求助

我之前配置NVMe over TCP的时候也碰到过类似的连接拒绝问题,结合你给出的环境(客户端Ubuntu 22.04,主机Ubuntu 20.04),给你几个具体的排查方向:

  • 先确认主机端的NVMe-oF服务是否在监听指定端口
    登录主机(192.168.1.32),执行以下命令检查8009端口是否被NVMe相关进程监听:

    ss -tulpn | grep 8009
    

    如果没有返回结果,说明主机端的NVMe TCP控制器没正确启动或者端口配置错误。你可以用nvme list-subsys查看主机上的NVMe子系统,确认是否已经成功导出了NVMe设备;另外别忘了加载nvme-tcp内核模块,执行modprobe nvme-tcp后再用lsmod | grep nvme_tcp确认模块是否加载成功。

  • 验证两台机器的网络连通性
    在客户端(192.168.1.170)上测试能否访问主机的8009端口:

    nc -zv 192.168.1.32 8009
    

    如果提示连接失败,大概率是防火墙拦截了流量。Ubuntu默认用ufw,你可以在主机端执行ufw allow 8009/tcp开放端口,同时检查客户端的ufw是否允许出站到这个端口;另外也要确认两台机器在同一个局域网,没有路由或者IP配置错误。

  • 检查命令参数和主机端的访问控制
    确认你执行的nvme discover参数是否正确:--host-traddr是不是客户端的正确IP?有没有输错?另外,主机端的NVMe子系统可能需要指定允许访问的主机NQN,你可以在主机端用nvme show-subsystem查看子系统的访问控制列表,确认客户端的主机NQN是否被允许接入。

  • 核对内核版本兼容性
    虽然Ubuntu 20.04的默认内核(5.4)已经支持NVMe over TCP,但有些旧版本可能存在兼容性问题。你可以在两台机器上分别执行uname -r查看内核版本,如果主机端内核版本过低,建议升级到较新的稳定版后再尝试。

备注:内容来源于stack exchange,提问作者Aman Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:47:58