本文档用于说明 lnctl 的常用命令、全局参数、认证方式、输出规则以及典型操作流程。1. 快速开始#
2. 全局参数#
lnctl 支持以下全局参数,所有子命令均可使用。| 参数 | 说明 |
|---|
--output | 输出格式,支持 json / yaml / table |
--timeout | 请求超时时间,单位秒,范围 10-300,默认值 30 |
--version | 输出版本信息 |
如果 --output 的值非法,CLI 会自动回退到默认 json。
如果当前命令不支持指定的输出格式,也会自动回退到默认 json。
如果 --timeout 的值非法或超出范围,CLI 会自动回退到默认 30。
3. 命令总览#
| 命令 | 说明 |
|---|
vps | VPS 实例管理 |
firewall | 安全组查询 |
image | 镜像查询 |
ssh-key | SSH Key 查询 |
region | 地域查询 |
package | 套餐查询 |
task | 异步任务查询 |
api-key | 本地 API Key 管理 |
upgrade | 升级 lnctl |
4. 认证说明#
lnctl 默认使用本地保存的 API Key 进行认证。~/.lnctl/api-key.key
~/.lnctl/api-keys.enc
4.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.
4.2 local api-key name 是什么#
local api-key name 是本地用于区分不同 API Key 的名称,不会发送到服务端。4.3 管理本地 API Key#
lnctl api-key add 会交互输入 local api-key name 和 api-key。
lnctl api-key add <name> 会使用指定名称,只交互输入 api-key。
如果当前没有默认 API Key,新保存的 API Key 会自动成为默认值。
如果当前已经有默认 API Key,新保存的 API Key 只会保存,不会自动切换。
lnctl api-key delete <name> --force 会跳过删除确认。
--force 只跳过确认,不会忽略 API Key 不存在的错误。
4.4 删除默认 API Key 后的处理规则#
如果删除的是当前默认 API Key,CLI 会自动处理新的默认 API Key:| 剩余 API Key 数量 | 处理方式 |
|---|
| 0 个 | 清空当前默认值 |
| 1 个 | 自动切换到剩余的 API Key |
| 多个 | 根据删除方式决定 |
交互删除或非 --force 删除时,会提示选择新的默认 API Key。
使用 --force 删除时,会自动选择稳定顺序中的第一个名称。
5. 参数值与特殊字符#
如果参数值包含特殊字符,例如密码中包含逗号、空格或其他特殊符号,推荐使用以下写法:该规则同样适用于 reset-password、reset-os 等需要传入密码的命令。6. VPS 管理#
6.1 查询实例详情#
6.2 查询实例列表#
6.3 创建实例#
创建 VPS 时,--password 与 --ssh-key-uuid 二选一。6.4 密码规则#
create、reset-password、reset-os 中使用 --password 时,密码需要符合以下规则:6.5 主机名称规则#
6.6 停止实例#
6.7 启动实例#
6.8 重启实例#
6.9 重置密码#
如果密码包含特殊字符,建议使用 --password='<new-password>'。
6.10 重装系统#
重装系统时,--password 与 --ssh-key-uuid 二选一。使用 --password 时,密码需要符合上文的密码规则。
如果密码包含特殊字符,建议使用 --password='<password>'。
6.11 删除实例#
7. 只读资源查询#
7.1 查询安全组#
7.2 查询镜像#
image list 默认输出 table,表格中包含 REGION 列。7.3 查询 SSH Key#
7.4 查询地域#
7.5 查询套餐#
8. 异步任务查询#
创建、删除、开关机、重装系统等变更类命令,可能会返回异步任务。9. 升级 lnctl#
检查并升级到当前 release channel 的 latest 版本:lnctl upgrade 不需要 LightNode API Key。
Linux 和 macOS 会在同目录生成备份文件:lnctl.bak。
Windows 会在当前终端启动 helper cmd 进程,继续完成延迟替换。
Windows 备份文件为同目录:lnctl.exe.bak。
Windows 升级的最终成功或失败结果会回到当前终端输出。
10. 输出规则#
10.1 默认输出格式#
| 命令类型 | 默认输出 |
|---|
list 类命令 | table |
非 list 命令 | json |
list 类命令如果没有显式传入 --output,默认输出 table。
需要完整结构时,建议显式使用 json 或 yaml。
10.2 非法 output 处理#
如果显式传入非法 --output,CLI 会提示:Invalid output value, reset to default: json
10.3 不支持 table 的场景#
如果当前命令不支持 table,但显式传入了 --output table,CLI 会提示:Invalid output value, reset to default: json
10.4 非法 timeout 处理#
如果显式传入非法 --timeout,CLI 会提示:Invalid timeout value, reset to default: 30
11. 常见操作流程#
11.1 首次使用#
如果本地没有 API Key,会自动进入交互配置流程。11.2 创建一台 VPS#
11.3 重装一台 VPS#
11.4 删除一台 VPS#
12. 常见排查#
12.1 提示 API Key 缺失#
是否已经执行过 lnctl api-key add。
~/.lnctl/api-key.key 是否存在。
~/.lnctl/api-keys.enc 是否存在。
12.2 变更命令返回异步任务#
创建、删除、开关机、重装系统等命令可能先返回异步任务。12.3 输出内容太长不易读#
12.4 lnctl upgrade 偶发网络失败#
EOF
connection reset
timeout
3.
重点关注错误输出中的 URL 和 Network error 字段。
CLI 当前会先做短重试,再输出收敛后的网络错误提示。12.5 Windows 升级会继续占用当前终端#
Windows 不能在运行中的 lnctl.exe 进程内直接覆盖自己。
lnctl upgrade 会启动 helper cmd 进程,在当前终端继续完成最终替换。
Modified at 2026-07-02 02:21:58