跳到正文

升级与重置

三个包共用一个版本号,一起发布,升级的顺序是先中枢,再被控端,最后客户端。

没有迁移这回事,config/ 的形状在版本之间可以变,没有任何东西负责翻译旧的那一份。从 0.1.0 升上来的同学,这一页帮不上忙:先备份,再 nhub reset all,然后重新初始化一遍。客户端比中枢新时它会自己解绑。nhub reset all 不是一个切换开关,它会丢掉这台机器收集到的每一把密钥和令牌。重置不会从任何网口上摘掉地址,所以发出这条命令的会话不会断。/etc/neutrino/agent 在中枢重置后还在,它属于被控端那个包。

一个版本号

  • 三个包一起发布,版本号一致。
  • 版本对不上时只会要求升级,不做协商。
  • 被控端版本不一致时,设备抽屉里写「这个被控端与 hub 的版本不一致。」,让你用下面的「重新安装被控端」;没有存过 SSH 凭据的机器,它改让你用一条新链接重新接入。
  • 客户端比中枢新时,它的说法是此客户端比 hub 新,请先升级 hub,随后自己解绑,让你粘一条新链接回来。

1. 打开「设置」页的关于一栏。

预期:面板版本、这台机器、内核、运行时长、地理数据,以及携带的软件清单,每一项带一个源码链接。

设置页的关于

2. 打开「客户端」页,看版本那一列。

预期:一台客户端一行,版本和状态并排。

客户端页的表格

升级顺序

1. 在中枢那台机器上装新包。

bash
sudo apt install ./neutrino-hub_0.2.0_amd64.deb

预期:面板以新版本重启,设置页的关于一栏显示新版本号。

2. 每台被控端,在面板的设备抽屉里点「重新安装被控端」。

预期:安装输出一行行推上来,完事之后抽屉里的版本提示消失。没有存过 SSH 凭据的机器,改用「用链接添加」生成一条新链接,在那台机器上跑 sudo nagent connect '<链接>'

3. 每台客户端装新包,Windows 上跑新的 msi。

bash
sudo apt install ./neutrino-client_0.2.0_amd64.deb

预期:客户端窗口自己重连上来,状态回到已连接。

WARNING

先升客户端会把它自己甩到中枢前面,它会解绑并停在那句「此客户端比 hub 新,请先升级 hub」上。

先把中枢升上去,再到客户端页生成一条新链接,粘回客户端窗口就回来了。

重置面板密码

1. 在中枢那台机器上跑。

bash
sudo nhub reset password

预期:它问一遍新密码,然后所有会话都被登出。

2. 脚本里不想交互时用这一条。

bash
printf '%s' "$NEW_PASSWORD" | sudo nhub reset password --stdin

预期:没有提示,直接设好。

3. 登录页写着「多次失败后已锁定。」时跑这一条。

bash
sudo nhub unlock

预期:登录重新放开,fail2ban 上的 SSH 封禁也一起清掉。初始化时给 SSH 装的 fail2ban 用的是逐次加长的封禁梯度。

TIP

面板密码和保险库主口令是两把不同的秘密。这里重置的是前一把,后一把用 nhub vault rekey,见《备份与恢复》

重置这台机器

1. 退回初始化之前。

bash
sudo nhub reset all

预期:先把网络交还回去,再把 config/ 换回仓库里那份示例,这台机器收集到的每一把密钥和令牌都消失,服务停掉,面板重启,所以没有会话能活过这次改动。/etc/neutrino/agent 留着。

DANGER

重置会拿走这台机器保管的每一份凭据:SSH 密钥、AI 令牌、保险库。

先下载一份备份,再执行它。

2. 重新初始化。

bash
sudo nhub setup

预期:向导从语言那一屏重新开始。

卸载

removepurge
neutrino-client常驻进程停掉,安装目录删掉,个人配置留着个人配置也一并删掉
neutrino-agent服务停掉,文件删掉同 remove
neutrino-hub单元停掉,文件删掉同 remove

卸掉中枢之前,按这个顺序收尾:

  1. 在客户端页逐个删掉客户端,每一个的网关密钥都会被吊销。
  2. 在设备抽屉里逐个「忘记设备」,设备及其保存的凭据从这台机器上删除。
  3. sudo nhub reset all,网络交还回去,服务停掉。
  4. 卸掉包。

把某个模块从一台设备上移除时,那个服务停掉,它的包被卸掉,它写在包之外的东西留在那台机器上。

TIP

客户端上 remove 保留这个人的配置,只有 purge 才会把它拿走。

Neutrino · 个人开发基础设施