如何修复 Printer Tools 中的 Moonraker 身份验证和 API 密钥错误

如何修复 Printer Tools 中的 Moonraker 身份验证和 API 密钥错误

作者 FixoLab


Moonraker 身份验证故障排除

简短答案

在可信的本地网络上,大多数 Moonraker 安装根本不需要任何凭据。如果你的 moonraker.conf 中配置了 trusted_clients 或 force_logins,导致确实需要凭据,Printer Tools 可以在连接时发送 API key、Bearer token 或 Basic Auth 凭据,但它们必须与 Moonraker 期望的完全一致,否则每个请求都会被拒绝。

你需要准备

  • 可以访问你的 moonraker.conf,或 Mainsail、Fluidd 的设置页面,以检查当前的身份验证配置
  • 当前的 API key、Bearer token,或 Basic Auth 的用户名和密码,取决于你的 Moonraker 安装使用哪一种
  • 一台已经在 Printer Tools 中添加好的 Klipper 打印机
  • 确认你设备的 IP 是否落在 moonraker.conf 中配置的 trusted_clients 范围内

修复身份验证错误

  1. 1

    确认是否真的需要身份验证

    查看 moonraker.conf 中的 trusted_clients 和 force_logins。如果你设备所在的网络已经落在可信范围内,本不应该需要任何凭据,出现身份验证错误更可能指向网络或 IP 范围不匹配。

  2. 2

    获取当前的凭据

    从 Moonraker 自带的工具生成或复制 API key,通常可以在 Mainsail 或 Fluidd 的设置页面中找到,或者确认服务器上配置的 Bearer token 或 Basic Auth 用户名和密码。

  3. 3

    在 Printer Tools 中准确输入

    在 Printer Tools 中打开打印机设置,输入凭据时不要带有多余的前导或尾随空格。哪怕多出一个字符,也足以导致看起来与缺少密钥完全相同的拒绝结果。

  4. 4

    重新连接并检查结果

    重新连接打印机,确认仪表盘能够加载。如果仍然失败,直接用同一凭据对 Moonraker 的 API 发起一次基础请求,确认密钥本身是否有效。

  5. 5

    如果密钥丢失或已轮换,重新生成

    如果密钥在你复制之后在服务器上被重新生成过,请生成一个新的密钥,并在所有使用它的地方更新,包括 Printer Tools 和其他任何 Moonraker 客户端。

Printer Tools 中的连接状态

Printer Tools 中的 Klipper 连接设置和身份验证字段Printer Tools 中的 Klipper 连接设置和身份验证字段

在 Printer Tools 中添加或编辑 Klipper 打印机时,身份验证字段会与主机地址一起出现。

Printer Tools 支持的方式

  • 在每个 Moonraker 请求中,以标准请求头形式发送可选的 API key
  • 针对如此配置的搭建,支持可选的 Bearer token 身份验证
  • 针对如此配置的搭建,支持可选的 Basic Auth 用户名和密码
  • 当你的网络已经落在 Moonraker 的 trusted_clients 范围内时,完全不需要任何凭据

不支持的方式

  • Printer Tools 没有实现 Moonraker 的一次性令牌或浏览器会话登录流程
  • 它无法自行发现或生成 Moonraker API key,密钥必须已经存在于服务器上
  • 一个有效但与 Moonraker 当前配置的方式不匹配的凭据,仍然会被拒绝

常见身份验证错误

已经输入了密钥,仍然显示未授权

确认密钥在你复制之后没有在服务器上被重新生成,并检查在 Printer Tools 中输入时是否带有多余的空格或隐藏字符。

之前正常,突然就失效了

如果密钥没有正确持久化,Moonraker 重启可能会导致密钥轮换,或者你的设备 IP 可能发生了变化,不再落在 trusted_clients 范围内。请重新检查这两点。

Basic Auth 被拒绝

确认 moonraker.conf 中你的搭建实际配置的是 Basic Auth,而不是 API key。发送错误类型的凭据,得到的拒绝结果与什么都不发送是一样的。

身份验证在 Mainsail 或 Fluidd 中正常,在 Printer Tools 中却不行

浏览器客户端通常依赖登录步骤之后创建的会话。Printer Tools 需要的是底层的静态 API key、Bearer token 或 Basic Auth 凭据,而不是那个会话。

远程访问的身份验证

无论你是直接在本地网络上连接,还是通过连回该网络的 VPN 连接,使用的凭据都是相同的。OctoEverywhere 和 Obico 有自己独立的授权层,与 Moonraker 的 API key 分开处理。

常见问题

API key 是不是总是必需的?

不是。许多本地 Moonraker 搭建根本不需要它。只有当你的 moonraker.conf 对 trusted_clients 之外的客户端强制要求身份验证时,才会变得必需。

我在哪里能找到我的 Moonraker API key?

通常可以在 Mainsail 或 Fluidd 的设置页面中找到,如果你在没有网页界面的情况下管理服务器,也可以直接从 Moonraker 自己的数据库中获取。

Printer Tools 支持 Moonraker 的登录和会话令牌吗?

不支持。Printer Tools 使用静态凭据,即 API key、Bearer token 或 Basic Auth,而不是浏览器客户端使用的交互式会话流程。

我可以完全取消身份验证吗?

这取决于你自己的 moonraker.conf 和网络安全选择。Printer Tools 只是遵循你的 Moonraker 实例当前要求的任何身份验证方式。

更改 API key 会影响正在进行的打印吗?

不会。正在进行的打印会在打印机上继续。在重新输入正确凭据之前,受影响的只是应用获取实时更新的能力。

查看完整的 Klipper 和 Moonraker 兼容性

查看受支持的 Moonraker 功能、可选的摄像头和 Spoolman 要求、远程访问方式以及当前的限制。

查看 Klipper 兼容性
Printer Tools
Printer Tools

在一个面板中管理您的所有 3D 打印机

通过一个应用监控 Bambu Lab、Klipper、OctoPrint、Creality、Snapmaker、Anycubic、Flashforge、Elegoo 和 Prusa 打印机

支持 Android、iPhone、iPad 和 Mac,并提供 Apple Watch 与 Wear OS 配套应用,以及通过 VPN、OctoEverywhere 或 Obico 实现的可选远程访问

Printer Tools