远程终端、SSH 与端口转发
三种"非桌面"的远程能力共享同一传输层(局域网 QUIC + 配对认证),也共享 被控端的 host 进程形态。
远程终端
在被控端起一个远程 shell(Windows 为 ConPTY,Linux 为 PTY),主控端以 内嵌终端页签(xterm.js)或独立窗口打开:
# 被控端
reach terminal host --bind 0.0.0.0:7778
# 主控端
reach terminal connect --host 192.168.1.10:7778
终端页签支持字号调节(设置页)、拉出独立窗口、复制粘贴;会话关闭有 FIN 排空语义——远端进程退出后输出完整落地再收尾,不会截尾。
远程 SSH
被控端内置 SSH server(端口 2222),任何标准 ssh 客户端都能直连——
密钥 / agent / 口令照常,凭据不落盘。
控制台的 SSH 会话 卡片把它变成一键操作:保存「设备 + 用户名 + 目标」
预设(目标默认 127.0.0.1:22,即设备自身的 sshd;也可填该设备能访问到的
任意 host:port),点击即自动建隧道并打开内嵌终端页签。
端口转发
把内网的 TCP 服务经隧道暴露到主控端本地端口:
# 被控端
reach tunnel host --bind 0.0.0.0:7779
# 主控端:本地 2223 → 被控端侧的 127.0.0.1:22
reach tunnel connect --host 192.168.1.10:7779 --local 127.0.0.1:2223 --target 127.0.0.1:22
# 之后任意客户端:ssh -p 2223 anyone@127.0.0.1
--target指向被控端视角的地址(127.0.0.1:80= 被控端自己的 80);- 桌面 host 也自带转发语义:
connect --target连到桌面 host 时,每条流 按目标头转发(一个 host 端口复用多种用途); - 控制台的「端口转发」弹窗(设备卡上的转发按钮)等价于上述命令。
会话监控
所有活跃会话(桌面 / 终端 / SSH / 隧道)都会出现在连接页的会话监控 折叠卡:已运行时长、上下行速率、RTT、FPS、码率,3 秒刷新,可一键停止。