修复 NetDrive 挂载 MinIO 时的连接被拒绝错误

阅读时间 5 分钟 troubleshooting minio
Steve
SteveSenior Engineer
NetDrive 无法连接到你自建的 MinIO 端点?本文逐一排查连接被拒绝错误的三大常见原因:端口错误、防火墙未放行,以及控制台地址与 API 地址混淆。

你将 NetDrive 指向自建的 MinIO 集群,点击 Test,却没有看到绿色对勾,而是出现”Connection refused”。存储桶始终无法挂载,而错误信息也没有说明问题出在端点、凭据还是中间的网络路径上。几乎所有情况都可以归结为三件事之一:端口错误、防火墙关闭,或是控制台地址和 API 地址被搞混了。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

将自建的 S3 兼容存储挂载为驱动器

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • 可连接 MinIO 以及任何 S3 兼容端点
  • Test 按钮可在挂载前验证连通性
  • Windows 和 macOS 使用相同的连接字段
WindowsmacOS
下载 NetDrive →

免费试用。提供终身与订阅方案。

为什么”连接被拒绝”是网络错误,而非凭据错误

“Connection refused” 发生在 NetDrive 检查你的 Access Key 或 Secret Key 之前。到端点本身的 TCP 连接就被拒绝了——要么该地址和端口上没有任何服务在监听,要么你的机器与 MinIO 服务器之间有东西正在主动拦截连接。这与”Access Denied”是不同的失败模式,后者意味着 NetDrive 已经到达了 MinIO,而 MinIO 拒绝了请求。如果你看到的是”Connection refused”,请先修复网络路径;在这一层通畅之前,凭据问题根本不会浮现。

NetDrive 驱动器管理器显示 S3 兼容驱动器的连接状态

检查一:控制台端口与 API 端口

MinIO 在两个独立端口上运行两个独立的服务:S3 API(默认 9000)和 Web 控制台(默认 9001)。NetDrive 需要的是 API 端口——如果 Endpoint 字段指向了控制台端口,连接要么直接被拒绝,要么连上了错误的服务。

  1. 打开 NetDrive → 点击 MinIO 驱动器上的齿轮图标,打开其设置。
  2. 确认 Endpoint 字段填写的是类似 http://192.168.1.50:9000 的地址,而不是 :9001
  3. 如果不确定你的 MinIO 实例使用哪个端口作为 API 端口,请检查 MINIO_API_PORT 环境变量,或者启动服务器时使用的 --address 参数——控制台通常有自己独立的 --console-address 参数。

检查二:防火墙与 Docker 端口发布

如果端口没问题,但仍然收到”Connection refused”,那么问题出在 NetDrive 与 MinIO 主机之间的某个环节阻断了连接。

  • Docker 部署:确认容器确实发布了该端口——docker run -p 9000:9000 ... 或 compose 文件中的等效配置。一个未发布端口的 MinIO 容器,即使在 docker ps 中看起来很健康,也无法从主机外部访问。
  • 主机防火墙:在 Linux 上,检查 ufw statusiptables -L 是否有阻挡入站 9000 端口的规则。如果 MinIO 运行在 Windows Server 上,检查 Windows Defender 防火墙的入站规则。
  • 网络分段:如果 NetDrive 运行在与 MinIO 主机不同的 VLAN 或子网上,确认它们之间的路由允许该端口通行——这在服务器与工作站分处不同网段的办公室环境中是常见的疏漏。

在输入到 NetDrive 连接设置之前先检查端口号

有一个快速判断问题出在 NetDrive 还是网络的方法:在同一台机器上打开浏览器,访问 http://<endpoint>:9000/minio/health/live。如果浏览器同样无法连接,那么问题完全出在网络路径上,而不是 NetDrive 的配置。

检查三:使用自签名证书的 HTTPS 端点

如果你的 MinIO 端点在反向代理后使用 https://,并采用自签名证书或内部 CA 签发的证书,某些 TLS 握手失败会表现为一个通用的连接失败,而不是证书警告。请确认从运行 NetDrive 的机器上看,证书链是有效的——对于内部 CA,该机器需要在其信任存储中安装该 CA 证书。作为诊断步骤,可以在内网中临时用 http:// 测试,以确认端点和端口本身没问题,然后在证书被信任后再重新启用 HTTPS。

确认连接到达 MinIO 后 NetDrive 的挂载状态

重新测试连接

在端口、防火墙和证书都处理妥当之后:

  1. 打开 NetDrive → 在驱动器管理器中选择该 MinIO 驱动器。
  2. 重新输入 Endpoint,确认 Path style 已启用(自建 MinIO 几乎总是需要这个,而不是虚拟主机寻址方式),然后点击 Test
  3. 出现绿色对勾表示 TCP 和 TLS 层已正常工作——如果驱动器此后仍无法挂载,剩下的问题几乎总是凭据或存储桶权限,而不是连通性。

总结

MinIO 驱动器上的”Connection refused”几乎在所有情况下都是网络层问题:端口错误、防火墙或 Docker 发布规则阻挡了访问,或者 HTTPS 端点上的证书不受信任。先排查端口和防火墙——它们占了大多数情况——之后再考虑凭据是否有问题。完整的搭建教程请参见 在 Windows 上通过 NetDrive 挂载 MinIO在 macOS 上通过 NetDrive 挂载 MinIO。如果连接成功但之后出现访问被拒绝,修复 NetDrive 的 S3 Access Denied 错误 涵盖了凭据和策略方面的内容。

— Steve, NetDrive