Makeph/ghostwire
GitHub: Makeph/ghostwire
一个零服务器的本地优先用户态 mesh VPN 工具包,基于 Noise 加密协议构建 WireGuard 兼容的点对点隧道,无需任何托管控制面。
Stars: 0 | Forks: 0
# ghostwire
[](LICENSE) [](https://www.rust-lang.org/)
一个完全由你掌控的本地优先用户态 mesh VPN。
ghostwire 是一个零服务器的 mesh VPN 工具包,用于从本地配置构建加密的点对点(peer-to-peer)隧道。它生成 WireGuard 兼容的 Curve25519 密钥,规划全互联(full-mesh)节点配置,导出 `wg-quick` 文件,并包含一个无需管理员权限即可测试的纯 UDP 加密数据路径。
## 为什么选择它
- 拥有你的隧道:没有控制面 SaaS、账户或托管协调器。
- WireGuard 兼容的密钥:Curve25519 密钥采用标准 base64 编码,与 `wg` 密钥材料兼容。
- 经过审查的加密:通过 `snow` crate 使用 Noise Protocol Framework,而非自行手写的原语。
- 本地优先配置:你的 mesh 存在于本地 `ghostwire.toml` 中。
- 单一静态二进制工作流:从一个 CLI 生成、检查、导出、自测并启动。
## 工作原理
ghostwire 使用 `Noise_IK_25519_ChaChaPoly_BLAKE2s`:基于 Curve25519、ChaCha20-Poly1305 和 BLAKE2s 的 Noise IK。发起方已经知道响应方的静态公钥,发送第一个握手数据报,响应方回复第二个。在这两个 UDP 数据报之后,两个 peer 都会建立一个 Noise 传输会话。
数据路径有意保持简单:一个应用数据包被封装为一个 Noise 传输消息,并作为一个 UDP 数据报发送。所有加密操作都委托给 `snow`。
密钥是 32 字节的 Curve25519 值,以标准 base64 格式呈现,与 WireGuard 的 `wg genkey` / `wg pubkey` 格式匹配。ghostwire 可以导出 `wg-quick` 配置,包括用于移动端导入的二维码输出。
通过 TUN 进行的真实操作系统数据包路由是可选的,并受 `--features tun` 特性门控。该路径需要管理员/root 权限,并且在 Windows 上需要 `wintun.dll`。纯 UDP 加密数据路径无需权限即可工作,并由 `ghostwire selftest` 覆盖测试。
## 安装
从本仓库安装:
```
cargo install --path .
```
或者构建一个 release 二进制文件:
```
cargo build --release
```
如需真实的 TUN 路由:
```
cargo build --release --features tun
```
## 快速开始
无需 TUN 设备即可验证本地加密数据路径:
```
ghostwire selftest
```
创建一个包含三个节点的新本地 mesh 配置:
```
ghostwire init --name home --subnet 10.42.0.0/24 --nodes laptop,vps,phone
```
检查节点、隧道地址、缩写的公钥、endpoint 以及哪些条目包含本地私钥:
```
ghostwire show
```
为节点导出 WireGuard 兼容的配置:
```
ghostwire export --node laptop
```
为移动端 WireGuard 导出二维码:
```
ghostwire export --node phone --qr # scan into the WireGuard mobile app
```
生成全新的密钥对:
```
ghostwire keygen
```
## 安全性
ghostwire 通过 `snow` crate 使用 `Noise_IK_25519_ChaChaPoly_BLAKE2s`。这赋予了它 Curve25519 静态身份密钥、用于会话建立期间前向保密性的临时密钥、ChaCha20-Poly1305 传输加密以及 BLAKE2s 哈希。该 crate 没有实现自己的加密原语。
私钥不会通过 `Debug` 记录日志;密钥的调试输出会被脱敏为一个简短的指纹。`ghostwire.toml` 包含本地节点的私钥,并且被有意在 git 中忽略(gitignored)。
状态:早期阶段。在信任 ghostwire 处理任何关键任务之前,请先进行审计。
## 路线图
- 多 peer demux 与类似 WireGuard 的 cookie/index 处理。
- 漫游 endpoint。
- 预共享对称密钥选项。
- Windows 服务和 systemd 单元。
## 许可证
MIT
标签:P2P网络, Rust, VPN, WireGuard, 可视化界面, 密码学, 手动系统调用, 网络流量审计, 网络通信, 通知系统