本文档用于说明 lnctl 的常用命令、全局参数、输出规则和典型操作流程。1. 快速查看帮助#
2. 全局参数#
--output:输出格式,支持 json / yaml / table;如果值非法,或当前命令不支持该输出格式,会自动回退到默认 json
--timeout:请求超时时间,单位秒,范围 10-300,默认值 30;如果值非法或超出范围,会自动回退到默认 30
3. 命令总览#
4. 常用命令示例#
4.1 VPS 管理#
创建实例(--password 与 --ssh-key-uuid 二选一):密码规则如下(reset-password 和 reset-os 使用 --password 时同样适用):Must include uppercase letters, lowercase letters, and numbers
Must include at least one of the following special characters: ()`~!@#$*-+={}[]:;,.?/
Maximum length: 64 characters
Only letters (A-Z, a-z), numbers (0-9), and hyphens (-) are allowed
含特殊字符的参数值处理办法#
如果参数值包含特殊字符,例如密码中包含逗号、空格或其他特殊符号,推荐使用 --参数名='参数值' 的形式。新密码需符合上文 create 中的密码规则;如需跳过确认,可加 --force。如果密码或其他参数值包含特殊字符,请参考 lnctl vps create 章节中的“含特殊字符的参数值处理办法”。重装系统(--password 与 --ssh-key-uuid 二选一):使用 --password 时,密码需符合上文 create 中的密码规则;如需跳过确认,可加 --force。如果参数值包含特殊字符,请参考 lnctl vps create 章节中的“含特殊字符的参数值处理办法”。4.2 只读资源查询#
镜像(默认 table,包含 REGION 列):4.3 异步任务查询#
4.4 本地 api-key 管理#
4.5 升级 lnctl#
检查并升级到当前 release channel 的 latest 版本:lnctl upgrade 不需要 LightNode API key。
升级过程会下载对应 OS/ARCH 的安装包,校验 SHA256,替换前备份当前二进制,替换后执行 lnctl --version 验证。
对 latest version、checksums、artifact 下载阶段的瞬时网络错误,CLI 会自动做短重试;重试耗尽后再输出可读错误信息。
HTTP 非 2xx 时会优先展示 URL、HTTP status 和必要的短响应摘要,不再把整段 HTML 错页直接打印到终端。
Linux/macOS 备份文件为同目录 lnctl.bak。
Windows 会在当前终端启动 helper cmd 进程继续完成延迟替换,备份文件为同目录 lnctl.exe.bak,最终成功/失败结果也会回到当前终端输出。
Windows helper 会先从独立 staging 临时目录读取新 lnctl.exe,自动重试替换,成功后清理 staging 目录。
5. 输出规则#
list 类命令如果没有显式传 --output,仍会默认输出 table(这是当前 CLI 的固定行为)。
如果显式传入非法 --output,CLI 会提示 Invalid output value, reset to default: json,并自动回退到 json。
如果在当前命令不支持 table 的场景下显式传 --output table,CLI 也会提示 Invalid output value, reset to default: json,并自动回退到 json。
如果显式传入非法 --timeout,CLI 会提示 Invalid timeout value, reset to default: 30,并自动回退到 30。
6. 认证说明#
lnctl 现在只保留一种认证方式:本地加密存储 api-key。不再支持其他运行期认证入口,也不再使用本地配置文件承载认证信息。6.1 首次直接执行业务命令#
当本地还没有默认 api-key 时,CLI 会直接进入交互流程:Enter local api-key name (local label only, not sent to server): dev
Enter api-key: ********
Saved api-key "dev" and set it as current.
保存成功后,当前命令会继续执行;后续命令会自动读取当前默认 api-key。6.2 主动管理本地 api-key#
交互输入 local api-key name 和 api-key
如果当前还没有默认 api-key,新保存的 api-key 会自动成为当前默认值
如果当前已经有默认 api-key,只保存,不自动切换当前默认值
默认值处理规则与 lnctl api-key add 相同
lnctl api-key switch <name>lnctl api-key delete <name>lnctl api-key delete <name> --force 删除当前默认 api-key 后,CLI 会自动处理新的当前默认 api-key:交互删除或非 force 指定删除时,提示你选择新的当前默认 api-key
--force 删除时,自动选择稳定顺序中的第一个名称
6.3 local api-key name 是什么#
local api-key name 就是你本地用来区分不同 api-key 的名称。6.4 业务命令如何读取 api-key#
执行业务命令前,可以先用下面的命令确认当前默认 api-key:如果本地还没有可用 api-key,CLI 会自动进入交互配置流程。7. 常见排查#
7.1 提示 api-key 缺失#
是否已经执行过 lnctl api-key add
~/.lnctl/api-key.key 与 ~/.lnctl/api-keys.enc 是否存在
7.2 变更命令返回异步任务#
创建、删除、开关机、重装等命令可能先返回异步任务,请继续执行:7.3 输出太长不易读#
优先使用默认 table;需要完整字段时再切换到:7.4 lnctl upgrade 偶发网络失败#
如果看到 EOF、connection reset、timeout 之类的下载错误:先直接重试一次 lnctl upgrade --yes
重点关注错误输出中的 URL 和 Network error 字段
CLI 当前会先做短重试,再输出收敛后的网络错误提示。7.5 Windows 升级会继续占用当前终端#
Windows 不能在运行中的 lnctl.exe 进程内直接覆盖自己
lnctl upgrade 会启动 helper cmd 进程,在当前终端继续完成最终替换
请保持当前终端打开,等待 Upgrade completed. 或 Upgrade failed: ... 的最终结果输出
如需再次确认版本,可额外执行 lnctl --version
Modified at 2026-06-25 07:10:28