教程一:从一台客户端操作两台开发主机
没有真机复现。 命令按官方提交
6d35d09060a901d15e31ab7ccdeedfe6696c23c5核对。本站 远程访问译文 和 后台服务译文 仍是旧提交d2c25950b4d9183ea342d5d5fc14c326b9e0172a。旧译文写 Windows 没有后台服务;新提交改为 Windows 也支持。先看下面的版本说明,再选命令。
完成后,你能在同一客户端里选择主机 A 或主机 B,打开该机上的项目,并开始一个不修改代码的检查线程。你还能分清“连不上主机”和“主机上的 provider 不能运行”。
适合已有一台常用笔记本,再加一台 Mac mini、工作站或服务器的人。只有一台电脑时,先做本机线程,不必为了多机去搭服务器。
相关场景见 真实场景。Nimrod 的视频只是 观看入口,不是已核验的逐步教学。Y1
版本差异:Windows 与没有终端时的 t3 up
在 旧快照 d2c25950,官方远程访问文档写:后台服务不在 Windows 上提供,t3 up 会打印要在终端里保持运行的 t3 serve。本站那篇中文译文仍然是这个说法。
在 本章基准 6d35d090,后台服务文档写 Linux、macOS 和 Windows 都可以作为用户服务运行;远程访问文档不再写那条例外,并写 t3 up 随后把 T3 Code 作为后台服务运行。Windows 上该服务在登录时启动、注销时停止,任务计划程序里的任务名形如 t3code-<domain>-<user name>。锁屏而不是注销,并保持机器清醒,远程才持续可用。D8
如果你的安装更接近旧译文,不要假定 Windows 上 t3 up 会装好服务。先看 Settings → About 和 t3 up --help。
另外,官方把“有终端”和“没有终端”分开写了:D1
- 有终端时,
t3 up会问其他设备如何到达这台机器:T3 Connect、局域网,或两者。选 T3 Connect,再按登录说明做。 - 没有终端、又没有点名选项、而且什么都还没配置时,
t3 up会停下来并列出标志。这时要用t3 up --connect,而不是等待一个不会出现的提问。t3 connect与t3 up --connect相同。 - CLI 打印浏览器链接和短码,是 SSH 以及非交互登录里写明的确认方式。不要把它说成每一次桌面 Settings 点击都会出现短码。核对短码之后再批准。
前提与安全默认
- 你拥有或已获准使用两台开发主机及其仓库。
- 每台目标主机按官方安装说明安装兼容版本,并能运行至少一个 provider。安装和认证发生在目标主机,不在控制端手机。Windows 与 WSL 的路径、环境和认证要分开检查。D2
- 先用非生产练习仓库。不要把生产数据库、全局管理员凭据或无关个人目录交给练习 agent。
- 在线程编辑器里明确选 Supervised。这一提交的官方文档仍把初始默认写成 Full access,不能假设默认会逐项询问。D5
- 只选一种主要接入方式。不要同时照做所有启动命令,造出第二份服务器。
本课不复制第三方文章里的安装脚本。
拓扑
你的笔记本、手机或浏览器
连接主机 A 的 T3 Code → A 上的仓库、provider 和线程
连接主机 B 的 T3 Code → B 上的仓库、provider 和线程客户端是入口,不是代码同步服务。主机 A 的登录不会自动出现在主机 B。同名项目也不能当成相同路径。已有线程留在开始时的主机;选择另一台机器,不是把正在运行的线程迁走。D1
步骤 1:先让每台机器独立工作
- 在主机 A 打开 Settings → Providers,选择主机 A,检查 provider 已启用且认证有效。
- 在 A 打开练习项目。查看当前环境、仓库路径和线程权限。
- 提交下面这段整理建议。它不是博主原话。
只检查当前项目,不修改文件,不运行部署,不提交或推送。
告诉我当前项目在哪台环境、使用哪个工作目录、当前分支是什么。
从仓库现有说明中找出测试或检查入口,列出你找到的依据。
如果读取某项信息需要批准,先申请,不要扩大权限。- 在主机 B 重复同样检查。若 B 的 provider 不可用,先在 B 修复。不要靠提高客户端权限来绕过。
预期是两台主机各有一个可用线程,各自报告自己的环境和路径,没有文件改动。
步骤 2A:T3 Connect
这是官方提供的托管接入,不需要自己做路由器端口转发。它要信任 T3 Connect 的身份与引导服务,不是无中介的端到端加密承诺。D1
在每台主机分别完成:
- 桌面端打开 Settings → Sharing & access,登录并启用该环境的 T3 Connect。
- 主机不用保持桌面运行时,在终端执行:
t3 up有终端时选择 T3 Connect,不要同时打开不需要的局域网暴露。没有终端时改用:
t3 up --connect- 若 CLI 打印了网页登录链接和短码,先核对短码一致再批准。不要把链接或短码放进聊天、截图或 Git。
- 在主机看状态:
t3 status在新提交里,t3 up 设置 Connect 时会安装后台服务。只保存登录,不等于已经有可连接的服务器。若靠桌面端的本地服务器,关掉最后一个窗口会停掉它。主机睡眠、关机或离线也会让远程连接不可用。D1
控制端登录同一个 T3 Connect 账号,先选 A,再选 B。预期看到每台主机自己的项目和线程。
这一提交里,Connect 账号默认最多链接 3 台机器,手机和浏览器不计。付费 T3 Chat 可以提高这个配额。它不是所有 SSH 或私网连接的统一机器上限,也不会给 provider 增加订阅额度。D1
步骤 2B:或者用 Tailscale HTTPS
已有受管理的 tailnet、又不想走 Connect 的托管路线时,可以用官方写明的 Tailscale HTTPS。本课不安装 VPN,也不改网络策略。D1
- 确认客户端和目标主机已经在同一 tailnet 里。
- 桌面主机在 Settings → Sharing & access 启用 Tailscale HTTPS。
- 还没运行 T3 的命令行主机:
t3 serve --tailscale-serve服务器已经在跑时,不要再起一份:
t3 pair --tailscale- 配对链接用可信方式交给自己的客户端,用 Add environment 添加。每个新设备用新的配对链接。
- 加上第二台主机后,逐个核对环境名称和项目路径。
配对链接可能包含授权信息。默认配对权限很宽,只用于你信任的个人客户端。tailnet 只限制网络可达,不能代替 T3 的配对和权限。官方托管网页需要 HTTPS。单独一个配对 URL 不会把不可达后端变成可达,也不会把 HTTP 自动升成 HTTPS。不要用公网转发或关掉认证来修这个问题。D1
可选:桌面管理的 SSH
已有合规 SSH 时,可在桌面端 Settings → Environments → Add environment → SSH 输入现有 host 或 alias。T3 Code 会在目标主机启动或复用服务器,并建立端口转发。D1
远端须是 Linux 或 Apple Silicon Mac,并具备文档列出的基础工具和 provider。provider 必须出现在非交互登录 shell 的 PATH 里。交互终端找得到 CLI,不能证明 T3 后台也找得到。
Nimrod 写过重复服务器和版本漂移,因此他自己只用 Tailscale。那是作者经验,不是官方禁止 SSH。W1
步骤 3:逐机验收
在控制端对 A 和 B 分别做,不跳步:
- 选中目标环境,打开对应练习项目。
- 查看步骤 1 的线程,确认环境、目录和分支。
- 在 Supervised 下再做一次只读检查。线程能回答,工作目录没有新增改动。
- 暂时断开客户端再重连,仍回到正确主机和线程。
- 记录主机名称、项目路径、T3 版本和 provider 状态。不记录配对码或凭据。
看到两台机器,不代表它们的 agent 能互相发任务。跨机委派是下一页的额外授权:Linked environments。
常见失败
| 现象 | 先检查什么 |
|---|---|
| 主机显示离线 | 主机是否醒着、在线、T3 是否在运行。主机执行 t3 service status,不要先创建第二份服务器 |
| Connect 登录成功但进不去 | 客户端 Settings → Environments → Details 找第一处失败;主机执行 t3 connect status。登录、隧道和 T3 服务分开看 D9 |
| 隧道起不来,但网页上网正常 | 可能是主机出站 7844 被限制。请网络管理员核对,不要擅自改防火墙、关掉公司 VPN,或开放公网入站 D9 |
| T3 能连上,agent 起不来 | 看目标主机 provider 的认证、PATH、Binary path 和兼容版本,不能只查客户端 D2 |
| 手机打不开复制的地址 | 127.0.0.1 只指手机自己。检查目标主机地址、HTTPS scheme 和私网是否真的可达 D1 |
| 新版客户端连旧主机报错 | 核对双方版本和设备时间,以及主机升级后是否还要重启。重启会打断正在运行的 agent turn D8 |
| 同一环境出现几份不同历史 | 先核对是不是误启了不同服务或不同数据目录。不要删数据库来“合并” |
最后一项来自作者重复启动服务器的经验,是整理建议。不要自动清理或移动已有数据。
退出与撤权
不用的客户端,在目标主机 Settings → Sharing & access 撤销它的 session。撤销还没用过的 pairing link,只会阻止新配对,撤不掉已经配对的设备。客户端的 Forget 也不等于目标机撤权。D1
Connect 的解绑、退出登录和卸载后台服务是不同动作。只想停止暴露时,不要误删工作数据。命令行上,t3 connect unlink 关掉暴露并保留登录;t3 connect logout 还会清掉登录。卸载服务是另一件事。D1
来源:D1、D2、D5、D7、D8、D9。场景来自 X1、X2,私网经验来自 W1。视频入口是 Y1,不是逐步操作已核验的证据。完整出处见 来源。