跳到正文

设备与远程桌面

设备页管的是装了被控端的机器:怎么把一台机器接进来,怎么在抽屉里指挥它,怎么在它上面开终端和文件浏览器,怎么共享它的桌面,以及怎么把它忘掉。

被控端只有 Linux 版,没有 Windows 版,也没有 macOS 版,想把 Windows 机器当设备管的同学,这一页帮不上忙。被控端没有窗口,面板里有些提示还写着 nagent gui,那条命令不存在,照下面的终端命令做。接入链接五分钟过期,用掉即作废,再生成一条旧的就取消了。离线机器上的模块改不了,面板直接拒绝,不排队。共享桌面的坐席密码从不显示,只能重置。中枢从不主动拨号连设备,SSH 只用来装或者重装被控端。

用链接接入

1. 打开「设备」页。

预期:分成「已管理的设备」和「未管理的设备」两块,角标写着「{total} 台中有 {managed} 台已管理」。上面那排筛选是全部、在线、离线、被控端、SSH、仅扫描到。

图例里四行话分别是:已管理的会自报健康状况并从 hub 接收模块;有凭据的未管理机器,一个操作就能装上被控端;没有凭据的未管理机器,给它发一条接入链接;不应答的机器回来之后凭据照样能用。

设备页的两块列表

2. 点「用链接添加」。

预期:弹出一条 neutrino://enroll/… 的链接和一个「复制」按钮,五分钟内有效。这台机器上一个服务网络都没有地址时,生成会被拒绝;通道还没有证书时也会。

接入链接的提示条

3. 在那台机器上接入。

bash
sudo nagent connect 'neutrino://enroll/PLACEHOLDER_LINK'

预期:命令返回后几秒内,机器出现在「已管理的设备」里。这条命令要 root,因为它写下绑定关系并把服务拉起来;不带链接直接跑,它会让你把链接粘进去。已经绑过一次的机器,加 --yes 会直接顶掉旧的绑定。

TIP

链接的载荷是 base64url,字母表里没有 shell 会切开或者 URL 要转义的字符,所以不加引号也粘得进去。上面那对引号是习惯,不是必须。

WARNING

同一时间只有一份邀请。再生成一条,前一条就作废了,那台正准备用旧链接接入的机器会失败。

一台一台来:生成、在那台机器上跑完 nagent connect、看到它上线,再去生成下一条。

通过 SSH 安装

1. 在「未管理的设备」里点开一台机器,点「安装被控端」。

预期:弹出「在 {device} 上安装被控端」,要填主机、端口、用户名、凭据和 sudo 密码。端口越界时提示端口必须在 1 到 65535 之间。机器报的不是 Linux 时,它会拒绝,让你改用接入链接。

SSH 安装被控端的表单

2. 凭据里挑一把存好的 SSH 密钥或者一组登录口令,需要密码的账号填上 sudo 密码,点「安装被控端」。

预期:下面的「安装输出」把安装过程一行行推上来,最后是退出码。机器自己就接进来了,装完那一步的接入链接是安装器生成并用掉的。凭据一把都没有的话,先去凭据页存一把。

sudo 密码填的是这台设备上执行 sudo 的那个登录账号的密码,账号本来就免密 sudo 就留空。中枢只在装和重装被控端时通过 SSH 伸手进去,别的事情一概不拨号。

设备抽屉

点开一台已管理的机器。

预期:右边滑出抽屉,从上到下是身份、操作、远程桌面、终端、文件、操作输出和被控端命令结果。被控端版本和中枢对不上时,上面写「这个被控端与 hub 的版本不一致。」,让你用下面的「重新安装被控端」。

设备抽屉

操作做什么
重启那台机器立刻重启
关机那台机器断电
网络唤醒往 UDP 9 端口发一个魔术包
安装被控端走 SSH 安装器
重新安装被控端在已有被控端上再走一遍安装器
忘记设备见本页最后一节

WARNING

确认框里那句话是「这台机器会立刻执行,上面没保存的东西都会丢。」重启和关机没有缓冲期。

机器离线时这些操作会被拒绝,提示「这台机器没有响应,没有在它上面启动任何操作。」,不会等它回来再执行。

终端与文件

1. 在抽屉里点「终端」,或者直接打开「终端」页。

预期:一个标签页里开出那台机器上的 shell。按键直接送到机器上,Esc 也一样;关掉一个终端用标签上的 ×。

终端页

2. 点「文件」,或者直接打开「文件」页。

预期:文件浏览器以那台机器为根打开,可以浏览,也可以在机器之间搬文件。

文件页

远程桌面

远程桌面用的是 RustDesk,随被控端一起发布,直连端口 21118。

1. 在要共享桌面的那台机器上开起来。

bash
sudo nagent rdp start --user alex

预期:命令打印出共享信息,抽屉里的远程桌面一栏填上 ID、「直连端口 21118」和「由 alex 共享。」,旁边还有「复制 ID」。不写 --user 时,共享的是执行 sudo 的那个账号的桌面,没有的话就是屏幕前唯一那个账号。

抽屉里的远程桌面

2. 在 laptop 的客户端窗口里,在「远程桌面」面板上点「连接」。

预期:按钮先写「正在连接…」,RustDesk 查看器打开在那台机器的桌面上,这一行随后写「查看器已打开」。终端里是 nclient service desktop connect 1

客户端上的远程桌面连接

3. 不用了就在那台机器上关掉。

bash
sudo nagent rdp stop

预期:这个条目从客户端的远程桌面面板里消失。面板上只有那台机器自己的被控端能声明它在共享桌面,服务页上没有这一组。

WARNING

坐席密码由中枢保管,界面上从不显示,nagent rdp 也不会问你要。

要换就在抽屉里点「重置坐席密码」,机器会立即拿到新密码,当前连着的观看者都需要重新连接;机器离线时密码不变。

忘记一台设备

在抽屉里点「忘记设备」,确认。

预期:提示是「设备及其保存的凭据会从这台机器上删除。」那台机器上的被控端还装着,下次发一条接入链接它就能回来。

Neutrino · 个人开发基础设施