虚拟局域网是怎么工作的——原理简述
一条虚拟网卡的魔法
Astral 在每台设备上创建一块虚拟网卡。这块网卡对操作系统来说和物理网卡没有区别——有自己的 MAC 地址、会分配 IP、可以收发数据。
不同之处在于:物理网卡的数据走网线/Wi-Fi,虚拟网卡的数据走 Astral 的加密隧道。
把分散的设备连成一张网
Astral 做的第二件事:把分布在不同家庭、不同运营商甚至不同城市的虚拟网卡,通过服务器+P2P 穿透,连接成一张逻辑上的局域网。
游戏为什么认
游戏在做局域网发现时,会扫描本机所有网卡的 IP 段,找同网段的其他主机。Astral 建好的虚拟网卡和物理网卡处于相同的 IP 段,游戏扫描到它、发现有其他在线主机,自然就把它们当成同一局域网里的设备来处理。
这就是 Astral 能"骗过"游戏的核心——游戏根本不知道这块网卡是虚拟的,只知道自己找到了局域网。
数据怎么走
实际的数据流向:
- 游戏向虚拟网卡发送局域网数据包
- Astral 捕获这些数据包,通过 P2P 直连(或强制中转)发送到对方的虚拟网卡
- 对方的 Astral 把数据包交给对方的虚拟网卡
- 对方的游戏收到数据,完成同步
不需要公网 IP 的关键
传统方案需要公网 IP 的原因:服务器要监听在一个"所有人都能直接访问"的地址上,客户端主动连接服务器。
Astral 反过来:每台设备都是对等的,不存在固定中心。P2P 穿透让两台藏在 NAT 后面的设备也能直接互相通信,根本不需要任何一方有公网 IP。公共服务器只在 P2P 穿不过时当中转。
和 FRP、Zerotier 的区别
| 特性 | Astral | FRP | Zerotier |
|---|---|---|---|
| 公网 IP 要求 | 不需要(P2P+中转) | 需要服务器有公网 IP | 不需要(P2P+云端) |
| 自建复杂度 | 零(公共服务器即用) | 高(服务器+配置) | 中等(云控制器) |
| 游戏适配 | 内置游戏识别 | 通用(需手动配端口) | 通用(万能网卡) |
| 界面友好度 | 高(Flutter 界面) | 低(命令行为主) | 中(Web 管理) |
Astral 把 Zerotier 的 P2P 穿透思路,包装成了一个面向游戏玩家的、开箱即用的产品。