T3 Code 非官方中文翻译不是官方产品,也不是 T3 Tools 官方文档。源提交 d2c25950b4d9英文原文GitHub 源文件
Skip to content

T3 Connect 故障排查 ​

一次 T3 Connect 连接按这个顺序经过四个部分:

  1. 本设备经互联网连到 T3 Connect。
  2. T3 Connect 核验你的登录,以及主机的链接。
  3. 主机的隧道(主机上的 cloudflared)把请求送到主机。
  4. 主机上的 T3 Code 作出应答。

连接失败时,打开 设置 > 环境,找到对应的环境(environment),再选 详情。第一个被标成失败的部分就是原因。到下文找到它的那一节。

要看主机这一侧,在主机上运行 t3 connect status,或者在主机上打开 设置 > 共享与访问。两者都会从主机去检查主机的 T3 Connect 地址,并说明失败的原因。t3 connect 在设置完成时会做同样的检查。这项检查测不了另一台设备的网络。某台设备上的问题,就到那台设备上打开 详情。

主机的隧道离线 ​

T3 Connect 联系不上主机的隧道。原因是下面之一:

  • 主机在睡眠、已经关机,或者不在线。
  • 主机上没有在运行 T3 Code。
  • 主机的网络把隧道挡住了。参见 主机上的 7844 端口被挡住。

处理办法:

  1. 确认主机是醒着的,而且上面正在运行 T3 Code。
  2. 在主机上运行 t3 connect status。它会指出主机这一侧的问题。
  3. 如果主机离线了很久,T3 Connect 会把它的隧道拆掉。在主机上启动 T3 Code,并更新到最新版本。它会拿到一条新隧道。

主机上的 7844 端口被挡住 ​

主机上的隧道向外连到 Cloudflare 的 7844 端口,TCP 和 UDP 都走这个端口。两种隧道协议(QUIC 和 HTTP/2)用的都是它。主机的网络一旦把它挡住,隧道就起不来,可是普通的网页访问仍然正常。主机看上去在线,所以这个问题很容易被漏掉。

常见原因:

  • 主机上开了 Tailscale 出口节点。 主机的全部互联网流量都从出口节点出去,而那边的网络挡住了 7844 端口。在主机上用 tailscale set --exit-node= 关掉出口节点,或者在出口节点所在的网络上放行出站的 7844 端口。
  • 主机上开了 VPN。 工作用的 VPN 经常挡住不认识的端口。请对方放行 7844 端口,或者改走直连路由(见下文)。
  • 防火墙,或者管得很严的网络。 放行出站的 TCP 和 UDP 7844 端口。

如果这个端口放行不了,可以不经过 T3 Connect 来连接。主机和本设备在同一个 Tailscale 网络上时,把主机的 Tailscale 地址加为直连路由。参见 用多种方式到达同一台机器。

隧道是通的,但 T3 Code 没有应答 ​

主机的隧道已经起来了,可是到不了主机上的 T3 Code。常见原因:

  • 主机上的 T3 Code 停了、崩溃了,或者还在启动。
  • T3 Code 换了一个端口重新启动,比如刚更新完,隧道却还指着旧端口。
  • 服务器用 T3CODE_HOST 只绑定了一个网络地址。隧道把请求发到 127.0.0.1,所以服务器也必须在那里监听。

处理办法:在主机上重启 T3 Code。如果跑的是后台服务,执行 t3 service restart。然后在主机上运行 t3 connect status。

T3 Connect 地址解析不了,或者没有应答 ​

主机的 T3 Connect 地址没有解析出来、拒绝了连接、安全连接(TLS)失败,或者没有及时应答。

处理办法:

  1. 确认主机是醒着的,并且在线。
  2. 在主机上运行 t3 connect status。
  3. 如果只有在主机上检查才失败,就查主机的 DNS、VPN 或代理。

本设备到不了 T3 Connect ​

问题在本设备的网络上,不在主机上。本设备到不了 T3 Connect,或者到了 T3 Connect,却到不了主机的隧道地址。

处理办法:

  1. 检查本设备的互联网连接。碰到强制门户,或者 Wi-Fi 已经名存实亡时,设备可以看起来在线,其实哪里都到不了。
  2. 本设备上的 VPN、防火墙、广告拦截或 DNS 过滤,都可能挡住 T3 Connect。先关掉一会儿,用来确认。
  3. 在 iPhone 上,Wi-Fi 设置里的 Connectivity Assist 可能让 T3 Connect 无法工作。关掉它再试。
  4. 换一个网络,或者给主机加一条直连路由,比如它的 Tailscale 地址。参见 用多种方式到达同一台机器。

本设备的 T3 Connect 登录还没准备好,或者 T3 Connect 里没有你的账户和这台主机之间的有效链接。

  • 主机链接的是另一个账户。 在本设备和主机上登录同一个 T3 Connect 账户。在主机上先运行 t3 connect logout,再运行 t3 connect。
  • 主机上的 T3 Connect 是关着的,或者主机只在发布智能体活动。 在主机上打开 设置 > 共享与访问,把 T3 Connect 打开,或者运行 t3 connect。
  • 主机已经链接过,但服务器还没有把这次链接应用上去。 在主机上重启服务器:退出再重新打开 T3 Code 桌面应用,运行 t3 service restart,或者先停掉 t3 serve,再运行一次。
  • 本设备的登录已经过期,或者主机不再接受这台设备。 退出 T3 Connect,再重新登录。
  • 本设备还在加载自己的 T3 Connect 登录。 等一会儿;T3 Code 会自己重试。如果一直停在等待,就在本设备上重新加载或重启 T3 Code。
  • 你的账户已经达到隧道数量上限。 到你的 T3 账户的 T3 Connect 页面,去掉一个你不用的环境,或者关联一个付费的 T3 Chat 账户,以换取更高的上限。然后在主机上重启 T3 Code。

时钟不准 ​

T3 Connect 用短时有效的证明给请求签名。本设备或主机的时钟只要偏差了几分钟,T3 Connect 就会拒绝这些请求。在两台设备上都打开自动设置日期和时间,然后再试一次。

主机上跑的是较旧的 T3 Code ​

这个应用要求主机上的 T3 Code 再新一些。请在主机上更新 T3 Code。参见 更新 T3 Code。

T3 Connect 返回了错误 ​

错误处理办法
environment_link_limit_exceeded 或托管隧道上限去掉一个不用的环境,或关联一个付费的 T3 Chat 账户,然后在主机上重启 T3 Code。
auth_invalid 或 invalid_bearer运行 t3 connect login。如果凭据已被撤销,先运行 t3 connect logout,再运行一次 t3 connect。登录之后重启服务器。
链接证明已过期或无效检查主机的日期和时间,更新 T3 Code,然后重启。
没有识别出具体错误的 HTTP 403检查中继(relay)的访问、代理和防火墙规则。把 Cloudflare Ray ID 留着,提交缺陷报告时用得上。
HTTP 408、429 或 5xx等几分钟。暂时性的失败,T3 Code 会自己重试。

永久性的拒绝处理好之后,用 t3 service restart 重启主机上的服务器。如果是前台服务器,先停掉它,再重新运行 t3 serve。

如果 SSH 一断开,主机上的 T3 Code 就消失了,参见 后台服务故障排查。

报告问题 ​

如果这些都没有用,请到 GitHub 提交一条 issue。请附上:

  • 该环境的 详情 里,复制诊断信息 得到的文本。
  • 在主机上运行 t3 connect status 的输出。
  • 跟踪 ID,如果界面上有显示。
  • 如果隧道更早掉过线,附上主机的隧道日志,也就是日志文件夹里的 relay-client.ndjson(默认是 ~/.t3/userdata/logs)。它记下隧道何时连上、何时告警、何时退出、何时重启,隧道令牌已经去掉。

非官方译文 · 源提交 d2c25950b4d9 · 不代表 T3 Tools