常见问题
现在能用吗
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(网状网络)。