
MESH v0.2.0-beta
加密的点对点网状VPN,用于远程移动取证,支持无线ADB和libimobiledevice数据获取、网络监控以及跨NAT和防火墙的入侵检测。
MESH 是一个网络工具,用于支持移动设备的远程逻辑取证采集
MESH 为分析师提供了一条直接、加密的路径,用于访问移动设备进行无线调试、网络监控和取证采集,即使这些设备位于 NAT、防火墙或受限移动网络之后。它构建了一个私有覆盖网络,使远程设备表现得就像位于同一本地子网中。它不需要中央 VPN 服务器,不需要端口转发,也不需要维护或防御的永久基础设施。这使得通过互联网进行无缝、简单的远程网络监控和采集成为可能,配合 MVT 和 AndroidQF 等工具使用。
它能做什么
- 通过 ADB 无线调试和 libimobiledevice 进行远程移动取证:运行 WARD、MVT、AndroidQF 及其他 ADB/iOS 工具,就像设备在本地一样。
- 远程网络监控:通过同一加密网格进行 PCAP 捕获和 Suricata 入侵检测。
它不能做什么
如何加固
- 当路径存在时,优先使用端到端直连的 WireGuard 传输。
- 可选的 AmneziaWG 用于混淆 WireGuard 以对付 DPI 和国家防火墙。
- 当 UDP 被阻断时,自动回退到加密的 HTTPS 中继。
网格是临时的且由分析师控制:将设备上线,采集,然后拆除网络。不留任何运行痕迹,这有助于避免活动被识别。
[!IMPORTANT] 公开 Alpha:目前处于公开 Alpha 阶段,正在积极开发中。已完成了完整的第三方渗透测试,并修补了所有主要漏洞。事情可能会发生变化,应预期出现破坏性变更。目前需要一定水平的技术专业知识。请通过 GitHub Issues 报告 Bug 或安全问题。
快速开始
完整文档:
https://docs.meshforensics.org/
前置条件
- Git
- Docker Engine,带有 Compose V2 插件(
docker compose,而非旧版docker-compose)。安装说明 - Task (go-task) 用于构建编排和交互式设置。安装说明。简易版:
- Linux:
sudo snap install task --classic - macOS:
brew install go-task
- Linux:
[!NOTE] 大多数运行时操作只需
docker compose即可工作,但交互式设置任务(.env管理、配置模板、认证密钥轮换)需要 go-task。
1. 克隆仓库
git clone https://github.com/BARGHEST-ngo/mesh.git
cd MESH
2. 启动控制平面
task build
task controlPlane
task controlPlane 以交互方式引导您完成设置,并启动所有必需的服务。对于大多数用户,选择临时和自动域名是推荐路径——它不需要服务器或 DNS 配置。
选择部署类型。 临时控制平面在您的工作站上运行,并通过安全隧道在互联网上可访问。持久控制平面在您管理的专用面向互联网的服务器上运行。
选择域名。 选择自动让 MESH 为您提供一个公共 HTTPS 地址。如果想使用自己的域名,请选择手动。
输入 API 密钥。 如果选择了自动域名,系统将提示您输入 API 密钥。该密钥将由 Barghest 团队提供给您,请联系我们请求访问。
确认配置。 在 MESH 启动前检查生成的设置。
如果这些设置不正确,或者设置被中断,请删除 .env 并重新运行 task controlPlane。
CONTROL_PLANE_TYPE=Ephemeral
PROXY_DOMAIN_TYPE=Automatic
MESH_SUBDOMAIN=<随机10字符slug>
FRP_AUTH_TOKEN=<秘密令牌>
CONTROL_PLANE_URL=https://<slug>.tunnels.meshforensics.app
LOGIN_URL=https://<slug>.tunnels.meshforensics.app
容器启动,并生成一个 API 密钥。 当所有服务健康后,MESH 会打印一个一次性 API 密钥,用于登录 Web UI。
Control plane API key (enter this in the web UI to log in):
<秘密 API 密钥>
3. 访问 Web UI
导航到您的控制平面 URL,并在提示时输入 API 密钥以登录。
https://<slug>.tunnels.meshforensics.app
Web UI 通过 HTTPS 提供服务,证书由 Let's Encrypt 自动颁发。
[!IMPORTANT] 默认 ACL 允许每个网络中的节点相互通信。 生产环境应使用限制性策略。通过 ACL 标签修改这些策略。
您的 MESH 网络现已准备好接受节点。
请参阅文档了解节点注册和取证工作流程。
4. 拆除
task down 销毁 MESH 网络,断开所有用户连接,如果您选择了临时部署和自动域名,这些及所有痕迹将被移除且无法再访问。
架构总结
MESH 是 Tailscale 协议 的一个大幅修改分支,但不需要 Tailscale 基础设施。
通过 UDP 打洞建立点对点、端到端加密通道。如果 UDP 不可用或受阻,它将回退到称为 DERP 中继的端到端加密 HTTPS 中继。DERP 服务器(DERP:设计加密中继用于数据包)在无法建立直接点对点连接时中继节点之间的流量。
MESH 遵循相同模型。默认情况下,如果操作员未配置自己的 DERP 基础设施(可通过 MESH 的控制平面完成),MESH 将使用 Tailscale 的公共 DERP 服务器以确保可靠连接,特别是在受限网络环境中。然而,MESH 不需要 Tailscale 基础设施:操作员可以通过控制平面部署并使用自己的 DERP 服务器,该控制平面包含一个内置的 DERP 实现。这使得 MESH 在需要时完全可以自托管。
DERP 服务器纯粹作为传输中继。它们促进设备之间的连接,但对交换的数据没有可见性,这些数据始终是端到端加密的。
增强功能包括(但不限于):
- 可自托管的协调服务器,具有针对取证操作定制的 UI
- 自动 WireGuard 密钥分发
- 可选的基于 AmneziaWG 的传输混淆
- 加密的 HTTPS 中继回退
控制平面仅负责对等发现和密钥交换。 取证流量尽可能直接在端点之间流动。
关键能力
- 点对点加密的取证子网
- 自动 WireGuard / AmneziaWG 密钥管理
- 可自托管且支持 ACL 实施的控制平面
- CGNAT 分配的虚拟 TUN 接口
- 兼容 ADB-over-WiFi 和 libimobiledevice
- AndroidQF + MVT 集成
- 取证制品的安全传输
- 可选的终止开关隔离
- 快速网格创建和拆除
为什么不是 VPN?
传统 VPN 和中心辐射型架构引入了:
- 持久化基础设施风险
- 集中化流量分析点
- 单点故障
- 增加操作暴露面
MESH 将协调与数据传输分开:
- 控制平面不承载取证流量
- 对等连接尽可能直接
- 中继是传输回退,而非架构中心
- 网格是可丢弃且任务范围的
MESH 针对瞬态、高风险环境进行了优化,而非永久性企业网络。
仓库结构
android-client— Android 端点 APKcontrol-plane— 协调服务器analyst— 分析师 CLI 客户端
开发者说明
工作流:
- 开发在分支上进行,并通过 PR 合并。
- 发布以带版本标签的形式切割。
- GitHub Actions 将带标签的发布镜像到
mesh-analyst-client。 - 外部 Go 项目应依赖显式版本标签,而非
main。
许可证
MESH 根据 GNU Affero General Public License v3.0 或更高版本 (AGPL-3.0-or-later) 许可。
本软件的某些部分是基于 Tailscale 的衍生作品,Tailscale 基于 BSD 3-Clause 许可。根据 BSD-3-Clause 要求,保留了原始 Tailscale 版权和许可证。AmneziaWG/Wireguard 代码基于 MIT 许可。详情请参阅 .licenses/。
BARGHEST 的所有修改和新增内容版权归 BARGHEST 所有,并根据 AGPL-3.0-or-later 许可。
法律声明
WireGuard 是 Jason A. Donenfeld 的注册商标。

