Skip to content

常见问题 ​

现在能用吗 ​

Windows 客户端和安卓客户端可以从 Releases 下载, 已经装在真的电脑和手机上用过。直连模式在真实网络里打通过(两台用移动流量的手机,经公网 IPv6)。但还没在两台真的电脑之间拿真的游戏联机过, 也没经过安全审查,Windows 安装程序没有代码签名 —— 可以试,别指望它一定行。试了的话,把结果告诉我们。 详见路线图。

1.0.0 做什么 ​

只做局域网游戏联机,客户端有 Windows 和安卓:让不在一处的朋友,能用只支持局域网的游戏模式一起玩。 通用组网、网络出口、按应用分流都在 1.0 之后。详见局域网联机:1.0.0 做什么。

每个人的电脑都要装吗 ​

要。每个参与联机的人都装一个 Meshora,加入同一个网络。网络要放在一个大家都连得上的地方: 在客户端里直接建,放在官方服务器、你自己的电脑(本机当主机,只有 Windows) 或你自己的服务器上,见桌面客户端 · 建一个网络。

会让延迟变高吗 ​

能打洞直连时,游戏流量走的就是你和朋友之间的直接路径,不绕任何服务器。 打不通走中继时会多绕一段,多多少取决于中继离你们多远。

具体数字要等真实网络里的测试 —— 现在写了就是编的。

我玩的游戏能用吗 ​

1.0.0 的目标是:靠局域网广播或组播找房间的游戏,以及能在局域网模式里直接输 IP 的游戏。 前者是真正的难点,见局域网联机 · 找得到房间。

但 1.0.0 发布之前没有兼容列表。有的游戏局域网模式还依赖别的东西,只能一款款试 —— 写一个出来就是编的。

那为什么先做官网 ​

因为这个阶段最需要的是把设计讲清楚并收到反馈。 一个能让人三分钟看懂"要造什么、怎么造、为什么这么造"的站点, 比一堆还没定型的代码更能帮到项目 —— 方向错了,代码写得再多也是白写。

和 Tailscale 有什么区别 ​

架构上很像,都是 WireGuard 数据面 + 自研控制面。

对联机来说最直接的区别:Tailscale 不转发局域网的广播和组播,靠广播找房间的游戏经它看不见对方 —— 而这正是 Meshora 1.0.0 唯一要解决的事。对比页有详细说明, 也写了 Tailscale 更好的地方。

如果你的游戏能直接输 IP 连接,Tailscale 现在就能用。

为什么不直接用 WireGuard ​

因为 WireGuard 只做隧道。它不做节点发现、不做 NAT 穿透、不做中继、不做选路 —— 而这些恰恰是"两台设备自动连上"的全部困难所在。Meshora 要造的就是这些缺失的部分, 隧道本身直接用 WireGuard。见架构。

中继能看到我的数据吗 ​

看不到内容。中继转发的是已经用 WireGuard 加密的报文, 既读不了明文也改不了内容(Poly1305 认证标签会让篡改在对端被丢弃)。

但中继能看到元数据:谁在和谁通信、什么时候、流量多大。 所有中继方案都是如此。在意的话可以自建中继。

需要公网 IP 吗 ​

玩家的电脑不需要 —— NAT 穿透和中继回退就是为此设计的。

但协调服务和中继要放在一个大家都连得上的地方:一台有公网地址的服务器(自己架的,或者以后的官方服务器), 或者建网络的人自己的电脑 —— 后者要宽带有公网地址、路由器支持 UPnP(本机当主机)。 官方服务器已经部署好,客户端建网络时默认用它。

支持 CGNAT 吗 ​

这正是要解决的场景之一。CGNAT 下你没有自己的公网 IP,端口转发完全失效, 只能靠打洞加中继兜底。双方都是对称型 NAT 时打洞成功率会明显下降,这种情况下走中继。

会收费吗 ​

代码以 MIT 协议开源。至于是否会有托管服务、怎么收费,现在谈这个为时过早。

数据会经过你的服务器吗 ​

用自己架的服务器、或者本机当主机建的网络,不经过我们的服务器;能直连时连你自己的服务器也不经过。

用官方服务器建网络的话:打不通直连时,加密后的报文会经它的中继转发,它看不到内容, 但看得到元数据(谁在哪个网络、公网地址、什么时候在线、流量多大),见威胁模型 · 官方服务器。

设计上控制面和中继都可以自建。这是个明确的设计约束,不是事后补的开关。

为什么用 Rust ​

内存安全(这是个直接处理不可信网络输入的程序)、无 GC 停顿、交叉编译成熟, 以及 boringtun 本身就是 Rust。详见架构。

支持我的系统吗 ​

客户端有 Windows 和安卓。 macOS、Linux、iOS 的客户端不打算做。官方服务器跑在 Linux 上,但服务端不发布,想自己架要从源码编译。

两个都装在真机上用过:Windows 客户端在一台 Windows 11 上实测连通过,安卓客户端在真手机上跑过、 每次打包也都在 CI 的模拟器里真的连一次网。都还没在真的朋友之间拿真的游戏试过。

我能帮上什么忙 ​

现阶段最有价值的是设计层面的反馈,不是代码 —— 接口契约刚有初版,还会改,提 PR 容易白写。 见参与进来。

名字怎么念 ​

Mesh + ora。取自 mesh network(网状网络)。

以 MIT 协议发布 · 首页背景由 Paper Shaders 驱动(Apache-2.0)