DirectLink 是由信令辅助的点对点平台。它负责登录、授权、服务器注册、服务发现和连接建立;应用数据通过加密通道在端点之间直接传输。
平台由托管的协调服务和运行在客户机器上的端点软件组成。同一 DirectLink 基础支持两组产品:通过 MTCode Server 与 Portal 发布普通私有服务,以及通过 MTGPU Server 及其客户端——Remote-GPU 扩展和 remotegpu-cli——管理 GPU 集群。
DirectLink 协调身份和连接建立;端点流量尽可能直连并加密。
提示:点击查看 MTGPU 架构图,MTGPU 同样构建在 DirectLink 之上。
由 MTCodeAI.com 托管,负责身份验证、授权、注册、服务发现和连接信令。它不中继应用数据。
MTCode Server 注册普通 TCP 服务。MTGPU Server 注册受管理的 GPU 主机和专用 SSH 端点。
MTCode Portal 将授权服务映射为本地端口。Remote-GPU 扩展或 remotegpu-cli 映射获得授权的 GPU 服务器并打开 SSH 终端。
用户登录后,客户端只会获取该用户被授权访问的服务或 GPU 主机。用户连接时,DirectLink 信令帮助双方在 NAT 后建立点对点路径。端点协议仍保持端到端加密。
DirectLink 对绝大多数用户都能成功建立连接。为了尽可能提高连接成功率,DirectLink 采用能自动适应不同网络环境的多层 NAT 穿透策略,即使面对许多对称型 NAT 路由器也能建立直连。即便如此,某些高度受限的环境——通常是严格的企业防火墙与特定类型对称 NAT 的组合——仍可能阻止直连;在这种情况下,管理员可以按照下文说明自建轻量级中继服务器。
对于极少数无法建立直连的网络,您可以自行提供回退方案。mtcode-relay 包含在 MTCode Server 与 MTGPU Server 软件包中,是一款轻量且易于托管的中继服务器。您可以将它运行在具有公网 IP 的 VPS 上,也可以运行在 NAT 路由器后的私有网络中;只需在路由器和防火墙上开放一个入站端口。管理员在自己的账号下运行 mtcode-relay 后,它便会成为该账号下所有服务器和客户端的可选中继。mtcode-relay 会拒绝任何未经授权的连接。
当某个服务器与客户端之间无法直接连通时,DirectLink 会自动将这条连接通过您的中继转发——无需任何配置或用户操作。系统始终优先并尽可能使用直连,只有在直连失败时才启用中继,整个切换过程对用户完全透明。运行方法(包括单端口设置以及 UDP 与 TCP 模式)见 mtcode-relay 手册。
服务器与客户端之间的每一条连接都由 TLS 加密保护。当 MTGPU Server、MTCode Server 或 mtserver-cli 向平台注册时,它会在服务器计算机上生成自己的证书和私钥。私钥在本机创建并始终保留在本机——绝不会被上传、传输或存储到其他任何地方。
因为没有任何其他人持有这把私钥——即使 MTCode 平台也没有——所以任何第三方都无法解密客户端与服务器之间的流量。加密是真正的端到端:数据只能在您掌控的两个端点被读取。
即使连接通过中继服务器转发,这一保护依然成立。中继只转发已加密的数据流——它不持有私钥,无法读取您数据中的任何一个字节。
ngrok、Cloudflare Tunnel 等反向代理和隧道工具通过中间中继服务器转发流量。这个额外跳转可能增加延迟、限制吞吐量、带来带宽成本,并让第三方服务商处于流量路径中。这类工具的工作方式还包括发布一个公网端点:除非在中继处另加访问控制,否则任何知道地址的人都能从整个互联网访问该服务。而且中继通常会为 HTTPS 端点终止 TLS,除非服务自身提供端到端加密,否则服务商会以明文处理这些流量。
Tailscale 等网状 VPN 会将整个设备连接到一个私有覆盖网络中——但网络接通并不等于看到服务。没有任何列表告诉用户有哪些服务可用:用户必须自己知道服务在哪台机器上,并记住正确的地址和端口才能连接。而当您希望在多个管理员之间只共享特定服务——而不是整台电脑——时,通常还需要仔细配置访问控制策略并进行协调。这些访问规则由网络管理员掌控,而不是由加入网络的电脑主人决定:在默认策略下,加入的设备在所有端口上都可被访问;除了设备自身的防火墙之外,设备主人能做的只有屏蔽全部入站连接,或者退出网络。
使用山码 DirectLink,用户只需一个应用——MTCode Portal——和一个账号。每位管理员授权的服务都会自动汇聚到同一个界面,无需网络配置即可使用。访问控制精确到单项服务,而不是整台电脑——服务器和客户端电脑都不加入任何网络,也不暴露任何东西。连接只为具体使用的服务建立。