跳到正文

快速上手

这一篇从零开始,装好一台中枢,接进第二台机器,装上客户端,发布一个共享并挂载它,大约十分钟。

这一篇装的是服务器形态,机器上每个网口都保留现有地址,也不会有任何设备被要求经它路由。想让中枢接管整个网络的同学,请直接看《网络模式》。面板走 HTTP,请在局域网里或者自己的虚拟网上访问它。被控端只有 Linux 版,它没有窗口,只能在终端里接入。macOS 三个包都不支持,Windows 上只跑客户端。

你需要什么

  • 一台装了 systemd 的 Linux 机器做中枢,x86-64 或者 ARM64,树莓派、电视盒子、旧笔记本都行。
  • 第二台 Linux 机器交给它管,下面叫 studio
  • 一台跑客户端的笔记本,下面叫 laptop
  • 三台在同一个网络里。

装中枢并初始化

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

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

预期:apt 报告安装完成,nhub 已经在 PATH 上。

2. 运行初始化。

bash
sudo nhub setup

预期:终端打印一条带一次性令牌的地址并等着你。机器上有浏览器的话,它会自己打开这个地址;按回车则改用终端里的同一套问题。

初始化向导的欢迎屏,写着这大约要一分钟

3. 语言 [Language]。选英文或者简体中文。

预期:屏幕顶上的计数器显示「配置 1/6」。

4. 面板密码,以及保险库口令 [Secrets]。填一个登录面板的密码,再填一句封存凭据的主口令。

预期:两个框都被接受,「下一步」可以按了。

填面板密码和保险库主口令的一屏

WARNING

保险库主口令封存这台机器保管的每一份凭据,恢复备份时还会再问一次,而机器上没有任何东西能把它找回来。口令丢了,备份里的凭据就打不开了。

现在就把它记到密码管理器里,和面板密码分开存放,别只写在这台机器上。

5. 这台机器做什么 [Shape]。选「服务器」。

预期:这张卡底下的说明是「不做路由,在被访问的网口上应答。」

选择机器形态的一屏,服务器卡片被选中

6. 用哪些网口 [Ports]。面板端口保持 8080 不动。

预期:这一屏的说明是不给任何网口指定角色,每个网口都保留现有地址并照常应答。

网口一屏,面板端口是 8080

7. 通过代理出网 [Proxy]。跳过。

预期:不填任何链接,「下一步」照样可以按。跳过也是一种回答,之后在代理页随时打开。

代理一屏,出口节点链接留空

8. 就绪 [Ready]。看一遍这台机器将变成的样子,确认。

预期:步骤一条条跑过去,最后一屏是「这台机器已是网关」。其间网络可能中断,中断了就刷新页面重连。

确认屏,逐条列出形态、语言、应答网口和面板端口

完成屏,写着这台机器已是网关

初始化最后会把这台机器自己的被控端也装上,中间不会问你要装哪些模块。

登录

1. 打开 http://<hub>:8080

预期:登录页,上面是微子的标记和「控制面板」,一个「面板密码」输入框和一个「登录」按钮。

面板的登录页

2. 用第 4 步那个面板密码登录。

预期:进入总览页。左边的导航分成两组,Hub 十页,被控端六页。

总览页,显示实时吞吐、出口和 DNS

左侧导航的两组,Hub 和被控端

面板走的是 HTTP,从局域网里访问它,或者从你自己的虚拟网上访问。

接进第二台机器

1. 打开「设备」页。

预期:页面分成「已管理的设备」和「未管理的设备」两块,中枢自己那台已经在上面一块里。

设备页,已管理的设备里有中枢自己

2. 点「用链接添加」。

预期:弹出一条 neutrino://enroll/… 的链接和一个「复制」按钮。这条链接五分钟内有效,而且同一时间只有一条,再生成一条旧的就作废。

接入链接的提示条,带复制按钮

3. 在 studio 上装被控端。

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

预期:包装好,服务起来了。

4. 在 studio 上用这条链接接入。

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

预期:命令返回后几秒内,studio 出现在「已管理的设备」里,带一个在线的点。链接里带着通道地址、令牌和被控端要钉住的 TLS 指纹,所以它不用监听任何端口。

TIP

不想挨个登机器的话,也可以让中枢通过 SSH 把被控端装过去:设备页点开那台机器的抽屉,用里面的「安装被控端」。做法见《设备与远程桌面》

装客户端

1. 在面板里打开「客户端」页,点「新建客户端链接」。

预期:出现一个名字框,占位文字是「这是谁的程序,例如 alice-laptop」,旁边是「创建链接」。

客户端页,新建客户端链接的表单

2. 名字填 laptop,点「创建链接」。

预期:弹出一条提示,让你把这条链接粘到 laptop 的客户端程序里,同样五分钟有效。

客户端接入链接的提示条

3. 在 laptop 上装好客户端包,然后打开窗口。

bash
nclient gui

预期:窗口打开,标题是「微子·客户端」,状态一栏写着「未连接」,下面一行提示粘贴 hub 客户端页面上的链接。这条命令前面不要加 sudo,客户端以你自己的身份运行,用 root 跑它会被拒绝。

客户端窗口,未连接状态

4. 把链接粘进输入框,点「连接」。

预期:状态变成「已连接」,后面跟着 hub 的版本号,旁边多了「断开」。下面的服务一栏画出五个面板:网页、端口、AI、文件、远程桌面。

客户端窗口,已连接并画出五个面板

面板的客户端页,laptop 在线

发布一个共享并挂载

1. 在面板的被控端组里打开「Samba」页。

预期:页面顶上是「已启用的设备」和一个设备选择器,下面写着这个模块还没装在任何机器上。Samba 跑在被控端下,也就是真正拿着磁盘的那台机器上,中枢自己不承载它。

2. 勾上 home-hub,点「应用设备」。

预期:先弹出一个安装确认框,列出要装的机器;确认后模块装上,页面开始显示这台机器自己的 Samba 面板。

3. 在「用户」里点「添加用户」,名字填 alex,设一个密码,点「应用用户」。

预期:这一行先标成待创建,应用之后账号就真的建好了。

4. 在「共享」里点「添加共享」,名字填 media,选一个目录,点「应用共享」。

预期:共享保存下来,服务重载,media 出现在共享列表里。

Samba 页,media 共享已经发布

5. 打开「服务」页。

预期:四组条目,网页、端口、AI、文件。media 在文件一组里,来源写的是由 home-hub 上的 samba 模块发布。

服务页,文件一组里有 media

6. 回到 laptop 的客户端窗口,在文件面板上点「配置」。

预期:出现共享用户名、共享密码和挂载路径三个框,路径已经填好 <home>/nas/media

客户端的文件配置表单

7. 填 alex 和刚才那个密码,点「挂载」。

预期:按钮变成「卸载」,共享挂在 ~/nas/media 下,文件管理器里直接能看到。

客户端的文件面板,共享已挂载

下一步

至此,从装包到挂上共享的整条路就走完了。

Neutrino · 个人开发基础设施