omniedgeio/omniedge
GitHub: omniedgeio/omniedge
OmniEdge 是一款基于 WireGuard 的零配置 mesh VPN,专为分布式 AI、机器人集群和边缘设备的跨网络安全低延迟互联而设计。
Stars: 895 | Forks: 53
# OmniEdge
[](https://github.com/omniedgeio/omniedge/releases)
[](https://github.com/omniedgeio/omniedge/actions/workflows/release.yml)
[](https://github.com/omniedgeio/omniedge/actions/workflows/e2e.yml)
[](LICENSE)
[](https://www.rust-lang.org/)
[](https://tauri.app/)
[](https://github.com/omniedgeio/OmniNervous)
[](#supported-platforms) [](https://discord.gg/d4faRPYj) [](https://github.com/omniedgeio/omniedge/releases)[](https://hub.docker.com/r/omniedge/omniedge) ## 问题所在 构建分布式 AI 系统很难。跨网络连接机器人、边缘设备和云基础设施更是难上加难: - 你的机器人集群无法在 NAT 后进行通信 - 联邦学习节点需要安全、低延迟的链路 - 远程调试 AI 设备需要复杂的 VPN 设置 - 多智能体系统需要没有中心服务器的点对点发现 - 人形机器人遥操作要求确定性、无抖动的网络 **OmniEdge 用一个单一二进制文件解决了这个问题。** ## 为什么研究人员和开发者选择 OmniEdge | 挑战 | OmniEdge 解决方案 | | ----------------------------- | ------------------------------------------------------ | | NAT 穿透 | 自动打洞 + 中继回退,99%+ 成功率 | | 对称 NAT | 针对最困难 NAT 类型的零知识中继 | | 延迟敏感的 AI 推理 | WireGuard 加密,~0.3ms 开销 | | 确定性网络 | 用于遥操作的 6-Sigma 稳定性 (Cpk 2.92) | | 安全的模型传输 | 端到端加密 mesh | | 异构设备 | 适用于 x86、ARM64、RISC-V 的单一二进制文件 | | 气隙隔离实验室 | 自托管 nucleus 模式(无云依赖) | ## 性能:工业级稳定性 通过使用过程能力分析 (Cpk) 的 [50 次纵向测试](https://github.com/omniedgeio/OmniNervous/blob/main/Capability_test/cloud_test_50_run_paper.md) 进行验证: | 指标 | OmniEdge Tunnel | 原始网络 | 提升幅度 | | --------------------------- | ------------------ | ------------ | -------------------- | | **Latency(延迟)** | 54.69ms | 54.36ms | +0.3ms 开销 | | **延迟稳定性 (Cpk)** | **2.92 (6-Sigma)** | 6.47 | 接近确定性 | | **吞吐量** | **484.7 Mbps** | 344.1 Mbps | **+140.8%** | | **抖动 (StdDev)** | 0.057ms | 0.026ms | 有界且可预测 | ## 完美适用于 ### 机器人 - **人形机器人遥操作**:用于实时控制回路的确定性延迟 - **机器人集群**:用于多机器人协调的 mesh 网络 - **ROS 2 集成**:跨网络的无缝 DDS 发现 - **远程调试**:无需端口转发即可 SSH 登录任何机器人 ### AI 与机器学习 - **联邦学习**:边缘节点间的安全梯度交换 - **分布式推理**:跨 Jetson/Pi 集群拆分模型 - **MLOps Pipelines**:将模型无缝部署到边缘设备 - **GPU 集群访问**:连接到远程训练基础设施 ### 研究 - **多智能体系统**:用于智能体协调的 P2P 通信 - **边缘计算**:将雾节点透明地连接到云 - **IoT 测试平台**:为传感器网络提供即时 mesh - **可重复的实验**:跨试验的一致网络 ## 快速开始(60秒) ``` # 在任何 Linux 设备上安装(Jetson、Pi、服务器) curl -fsSL https://raw.githubusercontent.com/omniedgeio/omniedge/main/scripts/omniedge-install.sh | bash # 启动并连接(首次运行交互式登录) sudo omniedge start # 大功告成。您的设备现在可以通过虚拟 IP 互相访问。 ``` ## Nucleus 模式自定义服务器 当运行 `omniedge start --mode nucleus` 或 `--mode dual` 时,CLI 可以使用公共 IP 和选定端口自动注册自定义用户服务器。这需要一个 auth token;如果缺少认证或公共 IP 查找失败,它将跳过注册并继续。 ### OpenWrt 安装 ``` # 下载适用于您系统架构的安装包(例如:aarch64、OpenWrt 24.10) wget https://github.com/omniedgeio/omniedge/releases/download/v2.9.0/omniedge_2.9.0_aarch64_generic.ipk # 安装安装包 opkg install omniedge_2.9.0_aarch64_generic.ipk # 通过 UCI 进行配置 uci set omniedge.main.enabled='1' uci set omniedge.main.network_id='your-network-id' uci commit omniedge # 启动服务 /etc/init.d/omniedge start /etc/init.d/omniedge enable # Start on boot ``` ## 支持的硬件 | 设备 | 架构 | 状态 | | -------------------------------- | ------------- | ------------ | | NVIDIA Jetson (Nano/Xavier/Orin) | ARM64 | 已测试 | | Raspberry Pi 4/5 | ARM64 | 已测试 | | Intel NUC / x86 服务器 | x86_64 | 已测试 | | Apple Silicon (M1/M2/M3) | ARM64 | 已测试 | | RISC-V 开发板 | riscv64 | 实验性 | | OpenWrt 路由器 | x86_64, ARM64 | 已测试 | ## 支持的平台 ### CLI(`omniedge-cli`) | 平台 | 架构 | 包格式 | | ----------- | ------------------------------------- | -------------------------------------- | | **Linux** | x86_64, ARM64, RISC-V | `.tar.gz`, `.deb`, `.rpm`, `.AppImage` | | **macOS** | x86_64 (Intel), ARM64 (Apple Silicon) | `.tar.gz` | | **Windows** | x86_64 | `.zip` | ### 桌面版(`omniedge-desktop`) | 平台 | 架构 | 包格式 | | ----------- | ------------- | ------------------- | | **Windows** | x86_64 | `.msi`, `.exe` | | **macOS** | x86_64, ARM64 | `.dmg` | | **Linux** | x86_64 | `.deb`, `.AppImage` | ### OpenWrt(`omniedge-openwrt`) | OpenWrt 版本 | 架构 | 包格式 | 状态 | | ------------------- | ------------ | ------------ | ------ | | **24.10.x** | x86_64 | `.ipk` | 已测试 | | **24.10.x** | aarch64 | `.ipk` | 已测试 | | **25.x (snapshot)** | x86_64 | `.apk` | 已测试 | | **25.x (snapshot)** | aarch64 | `.apk` | 已测试 | ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Your AI Network │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Jetson Orin │ │ Robot Fleet │ │ Cloud │ │ │ │ 10.147.1.1 │◄──►│ 10.147.1.x │◄──►│ 10.147.1.x │ │ │ │ ( Edges ) │ │ (Edges) │ │ (Edges) │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ └───────────────────┼───────────────────┘ │ │ │ │ │ ┌─────────▼─────────┐ │ │ │ OmniEdge Mesh │ │ │ │ (WireGuard) │ │ │ │ │ │ │ │ - E2E Encrypted │ │ │ │ - NAT Traversal │ │ │ │ - Relay Fallback │ │ │ │ - 6σ Stability │ │ │ └───────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 插件系统 (v2.2.0) OmniEdge 现在支持 **基于 WASM 的插件系统**,允许在不修改核心应用程序的情况下扩展功能。 ### 功能 | 功能 | 描述 | | ----------------------------- | -------------------------------------------------------- | | **WASM 沙盒** | 插件在安全的 WebAssembly 沙盒中运行 | | **事件钩子** | 对 VPN 状态变化、peer 事件、网络变化做出反应 | | **基于能力的权限控制** | 每个插件的细粒度权限 | | **热重载** | 无需重启即可安装、启用、禁用插件 | | **跨平台** | 单一插件二进制文件适用于所有平台 | ### 插件能力 | 能力 | 描述 | | ----------------- | --------------------------- | | `network-status` | 读取 VPN 连接状态 | | `peer-info` | 访问 peer 列表和状态 | | `event-hooks` | 订阅 VPN 事件 | | `http-client` | 发出出站 HTTP 请求 | | `key-value-store` | 持久化插件数据 | | `notifications` | 显示系统通知 | | `logging` | 写入应用程序日志 | ### 安装插件 ``` # 通过 CLI(v2.2.0) omniedge plugin list # List installed plugins omniedge plugin install ./plugin.zip # Install from ZIP file omniedge plugin uninstall # Remove a plugin
omniedge plugin enable # Enable a plugin
omniedge plugin disable # Disable a plugin
omniedge plugin info # Show plugin details
omniedge plugin reload # Reload a plugin
omniedge plugin discover # Discover plugins in directory
# 通过桌面端 UI
# 设置 > 插件 > 安装插件 > 选择 .zip 文件
# 插件目录
# Windows:%APPDATA%\OmniEdge\plugins\
# macOS:~/Library/Application Support/OmniEdge/plugins/
# Linux:~/.local/share/omniedge/plugins/
```
### 创建插件
有关完整示例,请参阅 [examples/plugins/hello-world](examples/plugins/hello-world)。
```
// Minimal plugin structure
wit_bindgen::generate!({
world: "omniedge-plugin",
exports: {
world: MyPlugin,
},
});
struct MyPlugin;
impl Guest for MyPlugin {
fn on_load() -> Result<(), String> {
Ok(())
}
}
```
## NAT 穿透 (v2.1.0)
OmniEdge 通过多层 NAT 穿透自动处理复杂的网络环境:
### 工作原理
```
┌─────────────────────────────────────────────────────────────────┐
│ NAT Traversal Stack │
├─────────────────────────────────────────────────────────────────┤
│ 1. STUN Detection → Identify NAT type (Open/Cone/Symmetric) │
│ 2. UDP Hole Punching → Direct P2P for compatible NAT types │
│ 3. Port Mapping → UPnP/NAT-PMP to open router ports │
│ 4. Relay Fallback → Zero-knowledge relay for symmetric NAT │
└─────────────────────────────────────────────────────────────────┘
```
### NAT 类型兼容性
| 你的 NAT | Peer NAT | 连接方式 |
| --------------- | -------------------- | --------------------- |
| 开放/完全锥型 | 任意 | 直接 P2P |
| 限制锥型 | 开放/完全/限制 | 直接 P2P |
| 端口限制型 | 开放/完全锥型 | 直接 P2P |
| 对称型 | 开放/完全锥型 | 直接 P2P(通常情况下)|
| 对称型 | 对称型 | **中继**(自动) |
### 功能
| 功能 | 描述 |
| ------------------------- | -------------------------------------- |
| **自动 NAT 检测** | 连接时基于 STUN 的检测 |
| **中继回退** | 针对对称 NAT 的零知识中继 |
| **端口映射** | 支持 UPnP/NAT-PMP/PCP |
| **加密信令** | X25519 + XSalsa20-Poly1305 |
| **IPv6 双栈** | Happy Eyeballs (RFC 8305) |
### 配置
```
# 检查您的 NAT 类型和设置
omniedge status
# 配置 NAT traversal
omniedge config show # View current settings
omniedge config relay on # Enable relay fallback
omniedge config portmap on # Enable UPnP/NAT-PMP
omniedge config ipv6 prefer # Prefer IPv6 when faster
omniedge config encrypt on # Enable encrypted signaling
```
## 运行模式
| 模式 | 描述 | 用例 |
| ------------------ | --------------- | ------------------------------ |
| **edge**(默认) | VPN 客户端 | 将设备连接到 mesh |
| **nucleus** | 仅信令服务器 | 自托管中继,无云 |
| **dual** | VPN + 信令 | 中心枢纽 + mesh 参与者 |
```
# Edge 模式 - 加入现有网络
sudo omniedge start -n
# Nucleus 模式 - 运行您自己的 signaling server(隔离网络实验室)
sudo omniedge start --mode nucleus --port 51821 --secret "YourLabSecret123"
# Dual 模式 - 同时参与 mesh 的 Hub 节点
sudo omniedge start -n --mode dual --secret "YourSecret123456"
```
## 传输模式 (v2.5.0)
OmniEdge 支持两种传输模式以满足不同的网络需求:
| 模式 | 层级 | 接口 | 平台 | 用例 |
| ---------------- | ------------------ | ---------- | ---------- | --------------------------- |
| **L3**(默认) | IP (Layer 3) | TUN | 全部 | 标准 VPN,IP 路由 |
| **L2** | 以太网 (Layer 2) | TAP | 仅限 Linux | 桥接,非 IP 协议 |
### L3 模式(默认)
L3 模式在 IP 层运行,在 peer 之间路由 IP 数据包。这是默认设置,适用于所有平台。
```
# L3 模式(默认 - 无需 flag)
sudo omniedge start -n
# 显式 L3 模式
sudo omniedge start -n --transport-mode l3
```
### L2 模式(仅限 Linux)
L2 模式在以太网层级运行,在 peer 之间桥接以太网帧。这可以实现:
- **非 IP 协议**:ARP、DHCP 中继、NetBIOS、STP
- **MAC 地址可见性**:跨 mesh 查看实际的 MAC 地址
- **VLAN 桥接**:跨站点扩展 VLAN
- **遗留协议支持**:不使用 IP 的协议
```
# L2 模式(仅限 Linux,需要 l2-vpn feature)
sudo omniedge start -n --transport-mode l2
```
**要求**:
- Linux 操作系统(TAP 设备需要 Linux 内核)
- 使用 `--features l2-vpn` 标志构建
**注意**:L2 模式目前处于预览阶段。OmniNervous L2 模块的完整集成正在进行中。
## SSH 集成 (v2.7.0)
OmniEdge 现在包含一个**内置的 SSH 服务器和客户端**,无需向互联网暴露端口即可安全远程访问 mesh 网络中的任何设备。
### 功能
| 功能 | 描述 |
|---------|-------------|
| **Mesh SSH 客户端** | 按名称或虚拟 IP 连接到任何 peer 的 SSH |
| **内置 SSH 服务器** | 通过 mesh 接受 SSH 连接 |
| **SFTP 支持** | 与 peer 进行安全的文件传输 |
| **SCP 支持** | 使用熟悉的 scp 语法复制文件 |
| **会话录制** | 录制 SSH 会话以用于审计/合规 |
| **集群操作** | 跨多个节点执行命令 |
| **紧急访问** | 用于事件响应的破窗机制 |
| **独立模式** | 在没有 OmniEdge 后端的情况下运行 SSH 服务器 |
### SSH 命令
```
# 连接到 peer(通过名称或虚拟 IP)
omniedge ssh user@my-robot # By peer name
omniedge ssh user@10.147.1.5 # By virtual IP
omniedge ssh -p 2222 user@peer # Custom port
# 执行远程命令
omniedge ssh user@peer "uptime"
omniedge ssh user@peer "systemctl status myservice"
# 交互式 SFTP
omniedge sftp peer # Start SFTP session
# 复制文件(SCP)
omniedge scp local.txt peer:/remote/path
omniedge scp peer:/remote/file.txt ./local/
omniedge scp -r ./folder peer:/path # Recursive copy
```
### 独立 SSH 服务器
完整 OmniEdge 后端的情况下运行 SSH 服务器 - 适用于测试、开发或轻量级部署:
```
# 默认:仅限私有网络(10.x、172.16.x、192.168.x)
omniedge ssh-server
# 接受来自任何 IP 的连接(开发/测试)
omniedge ssh-server --permissive
# 仅限 Localhost(127.0.0.0/8)
omniedge ssh-server --localhost-only
# 自定义网络 allowlist
omniedge ssh-server --allow-network 192.168.1.0/24
# 用户映射(将 SSH 用户映射到本地用户)
omniedge ssh-server --user-map git:admin --default-user guest
# 自定义端口和 host key
omniedge ssh-server -p 22 --host-key-path /etc/omniedge/host_key
```
### 用例
- **远程机器人调试**:无需端口转发即可 SSH 登录到机群中的任何机器人
- **安全文件部署**:通过 SFTP 将 ML 模型传输到边缘设备
- **集群管理**:在所有节点上同时执行命令
- **事件响应**:带有审计日志的紧急访问
- **气隙隔离操作**:用于隔离网络的独立 SSH 服务器
## 自托管模式(气隙隔离实验室)
完全离线运行,无云依赖:
```
# 在您的中央服务器上(例如,实验室 gateway)
sudo omniedge start --mode nucleus --port 51821 --secret "LabSecret2026!"
# 在边缘设备上 - 它们会通过您的 nucleus 互相发现
# 通过 dashboard 或 API 配置网络设置
```
**用例:**
- 安全的研究环境
- 具有网络隔离的工业机器人
- 国防和政府应用
- 隐私关键型部署
## CLI 参考
```
# 基本操作
omniedge start # Connect to first available network
omniedge start -n # Connect to specific network
omniedge status # Check connection status
omniedge stop # Disconnect
# 身份验证
omniedge start -s # Non-interactive login (CI/CD)
# Exit node(通过 peer 路由流量)
omniedge start -x # Run as exit node
omniedge start -e # Use specific exit node
omniedge start --no-exit-node # Disable exit node
# NAT traversal 配置(v2.1.0)
omniedge config show # Show current network settings
omniedge config relay on|off # Enable/disable relay fallback
omniedge config relay server # Set custom relay server
omniedge config portmap on|off # Enable/disable UPnP/NAT-PMP
omniedge config ipv6 on|off|prefer # IPv6 settings
omniedge config encrypt on|off # Encrypted signaling
omniedge config reset # Reset to defaults
# 插件管理(v2.2.0)
omniedge plugin list # List installed plugins
omniedge plugin install # Install plugin from ZIP
omniedge plugin uninstall # Remove a plugin
omniedge plugin enable # Enable a plugin
omniedge plugin disable # Disable a plugin
omniedge plugin info # Show plugin details
omniedge plugin reload # Reload a plugin
omniedge plugin discover # Discover plugins in directory
# 版本检查和升级(v2.6.0)
omniedge version # Display version with commit hash
omniedge version --check # Check GitHub for updates
omniedge version --releases # Show recent release history
omniedge upgrade # Self-update to latest version
omniedge upgrade --check # Check only, don't install
omniedge upgrade --yes # Skip confirmation prompt
# SSH 集成(v2.7.0)
omniedge ssh user@peer # SSH to peer by name or IP
omniedge ssh user@peer command # Execute remote command
omniedge sftp peer # Interactive SFTP session
omniedge scp file.txt peer:/path # Copy files to/from peers
omniedge ssh-server # Start standalone SSH server
omniedge ssh-server --permissive # Accept from any IP
# 高级模式
omniedge start --mode nucleus --port 51821 --secret "..." # Signaling server
omniedge start --mode dual --secret "..." # Hub + client
```
## V2 迁移通知
OmniEdge V2 是使用 Rust 的完全重写版本,取代了传统的 Go/n2n 实现:
| 方面 | V1(传统版本) | V2(当前版本) |
| ----------- | ---------------------------------------------------------------- | ----------------------------- |
| 语言 | Go | Rust |
| 协议 | n2n | OmniNervous(基于 WireGuard) |
| 许可证 | GPL-3.0 | Apache-2.0 / MIT |
| 代码仓库 | [omniedge-legacy](https://github.com/omniedgeio/omniedge-legacy) | 本仓库 |
## 研究与引用
在你的研究中使用了 OmniEdge?我们很乐意听取你的分享。
```
@software{omniedge2026,
title = {OmniEdge: Zero-Config P2P Mesh VPN for Edge Computing},
author = {OmniEdge Team},
year = {2026},
url = {https://github.com/omniedgeio/omniedge},
note = {Industrial-grade stability (Cpk 2.92) validated through 50-run longitudinal testing}
}
```
### 相关出版物
- [OmniNervous 协议稳定性分析](https://github.com/omniedgeio/OmniNervous/blob/main/Capability_test/cloud_test_50_run_paper.md) - 50 次 Cpk 验证研究
## 技术栈
- **[Rust](https://www.rust-lang.org/)** - 内存安全,零开销抽象
- **[WireGuard](https://www.wireguard.com/)** - 现代的、经过审计的密码学
- **[OmniNervous](https://github.com/omniedgeio/OmniNervous)** - 具有 NAT 穿透功能的高性能 P2P daemon
- 基于 STUN 的 NAT 检测
- 针对对称 NAT 的中继回退
- UPnP/NAT-PMP/PCP 端口映射
- 用于 IPv6 的 Happy Eyeballs (RFC 8305)
- **[Tauri](https://tauri.app/)** - 轻量级桌面应用
## 社区
- [Discord](https://discord.gg/d4faRPYj) - 提问、分享项目
- [GitHub Issues](https://github.com/omniedgeio/omniedge/issues) - 提交 Bug 报告和功能请求
- [Twitter](https://twitter.com/omniedgeio) - 更新和公告
## 许可证
采用 [Apache License 2.0](LICENSE-APACHE) 和 [MIT License](LICENSE-MIT) 双重授权。
可自由用于学术和商业项目。详情请参阅 [LICENSING.md](LICENSING.md)。
**为构建未来的机器而生。**
[网站](https://connect.omniedge.io) | [文档](https://connect.omniedge.io/docs) | [Discord](https://discord.gg/d4faRPYj) | [Twitter](https://twitter.com/omniedgeio)
[](#supported-platforms) [](https://discord.gg/d4faRPYj) [](https://github.com/omniedgeio/omniedge/releases)[](https://hub.docker.com/r/omniedge/omniedge) ## 问题所在 构建分布式 AI 系统很难。跨网络连接机器人、边缘设备和云基础设施更是难上加难: - 你的机器人集群无法在 NAT 后进行通信 - 联邦学习节点需要安全、低延迟的链路 - 远程调试 AI 设备需要复杂的 VPN 设置 - 多智能体系统需要没有中心服务器的点对点发现 - 人形机器人遥操作要求确定性、无抖动的网络 **OmniEdge 用一个单一二进制文件解决了这个问题。** ## 为什么研究人员和开发者选择 OmniEdge | 挑战 | OmniEdge 解决方案 | | ----------------------------- | ------------------------------------------------------ | | NAT 穿透 | 自动打洞 + 中继回退,99%+ 成功率 | | 对称 NAT | 针对最困难 NAT 类型的零知识中继 | | 延迟敏感的 AI 推理 | WireGuard 加密,~0.3ms 开销 | | 确定性网络 | 用于遥操作的 6-Sigma 稳定性 (Cpk 2.92) | | 安全的模型传输 | 端到端加密 mesh | | 异构设备 | 适用于 x86、ARM64、RISC-V 的单一二进制文件 | | 气隙隔离实验室 | 自托管 nucleus 模式(无云依赖) | ## 性能:工业级稳定性 通过使用过程能力分析 (Cpk) 的 [50 次纵向测试](https://github.com/omniedgeio/OmniNervous/blob/main/Capability_test/cloud_test_50_run_paper.md) 进行验证: | 指标 | OmniEdge Tunnel | 原始网络 | 提升幅度 | | --------------------------- | ------------------ | ------------ | -------------------- | | **Latency(延迟)** | 54.69ms | 54.36ms | +0.3ms 开销 | | **延迟稳定性 (Cpk)** | **2.92 (6-Sigma)** | 6.47 | 接近确定性 | | **吞吐量** | **484.7 Mbps** | 344.1 Mbps | **+140.8%** | | **抖动 (StdDev)** | 0.057ms | 0.026ms | 有界且可预测 | ## 完美适用于 ### 机器人 - **人形机器人遥操作**:用于实时控制回路的确定性延迟 - **机器人集群**:用于多机器人协调的 mesh 网络 - **ROS 2 集成**:跨网络的无缝 DDS 发现 - **远程调试**:无需端口转发即可 SSH 登录任何机器人 ### AI 与机器学习 - **联邦学习**:边缘节点间的安全梯度交换 - **分布式推理**:跨 Jetson/Pi 集群拆分模型 - **MLOps Pipelines**:将模型无缝部署到边缘设备 - **GPU 集群访问**:连接到远程训练基础设施 ### 研究 - **多智能体系统**:用于智能体协调的 P2P 通信 - **边缘计算**:将雾节点透明地连接到云 - **IoT 测试平台**:为传感器网络提供即时 mesh - **可重复的实验**:跨试验的一致网络 ## 快速开始(60秒) ``` # 在任何 Linux 设备上安装(Jetson、Pi、服务器) curl -fsSL https://raw.githubusercontent.com/omniedgeio/omniedge/main/scripts/omniedge-install.sh | bash # 启动并连接(首次运行交互式登录) sudo omniedge start # 大功告成。您的设备现在可以通过虚拟 IP 互相访问。 ``` ## Nucleus 模式自定义服务器 当运行 `omniedge start --mode nucleus` 或 `--mode dual` 时,CLI 可以使用公共 IP 和选定端口自动注册自定义用户服务器。这需要一个 auth token;如果缺少认证或公共 IP 查找失败,它将跳过注册并继续。 ### OpenWrt 安装 ``` # 下载适用于您系统架构的安装包(例如:aarch64、OpenWrt 24.10) wget https://github.com/omniedgeio/omniedge/releases/download/v2.9.0/omniedge_2.9.0_aarch64_generic.ipk # 安装安装包 opkg install omniedge_2.9.0_aarch64_generic.ipk # 通过 UCI 进行配置 uci set omniedge.main.enabled='1' uci set omniedge.main.network_id='your-network-id' uci commit omniedge # 启动服务 /etc/init.d/omniedge start /etc/init.d/omniedge enable # Start on boot ``` ## 支持的硬件 | 设备 | 架构 | 状态 | | -------------------------------- | ------------- | ------------ | | NVIDIA Jetson (Nano/Xavier/Orin) | ARM64 | 已测试 | | Raspberry Pi 4/5 | ARM64 | 已测试 | | Intel NUC / x86 服务器 | x86_64 | 已测试 | | Apple Silicon (M1/M2/M3) | ARM64 | 已测试 | | RISC-V 开发板 | riscv64 | 实验性 | | OpenWrt 路由器 | x86_64, ARM64 | 已测试 | ## 支持的平台 ### CLI(`omniedge-cli`) | 平台 | 架构 | 包格式 | | ----------- | ------------------------------------- | -------------------------------------- | | **Linux** | x86_64, ARM64, RISC-V | `.tar.gz`, `.deb`, `.rpm`, `.AppImage` | | **macOS** | x86_64 (Intel), ARM64 (Apple Silicon) | `.tar.gz` | | **Windows** | x86_64 | `.zip` | ### 桌面版(`omniedge-desktop`) | 平台 | 架构 | 包格式 | | ----------- | ------------- | ------------------- | | **Windows** | x86_64 | `.msi`, `.exe` | | **macOS** | x86_64, ARM64 | `.dmg` | | **Linux** | x86_64 | `.deb`, `.AppImage` | ### OpenWrt(`omniedge-openwrt`) | OpenWrt 版本 | 架构 | 包格式 | 状态 | | ------------------- | ------------ | ------------ | ------ | | **24.10.x** | x86_64 | `.ipk` | 已测试 | | **24.10.x** | aarch64 | `.ipk` | 已测试 | | **25.x (snapshot)** | x86_64 | `.apk` | 已测试 | | **25.x (snapshot)** | aarch64 | `.apk` | 已测试 | ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Your AI Network │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Jetson Orin │ │ Robot Fleet │ │ Cloud │ │ │ │ 10.147.1.1 │◄──►│ 10.147.1.x │◄──►│ 10.147.1.x │ │ │ │ ( Edges ) │ │ (Edges) │ │ (Edges) │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ └───────────────────┼───────────────────┘ │ │ │ │ │ ┌─────────▼─────────┐ │ │ │ OmniEdge Mesh │ │ │ │ (WireGuard) │ │ │ │ │ │ │ │ - E2E Encrypted │ │ │ │ - NAT Traversal │ │ │ │ - Relay Fallback │ │ │ │ - 6σ Stability │ │ │ └───────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 插件系统 (v2.2.0) OmniEdge 现在支持 **基于 WASM 的插件系统**,允许在不修改核心应用程序的情况下扩展功能。 ### 功能 | 功能 | 描述 | | ----------------------------- | -------------------------------------------------------- | | **WASM 沙盒** | 插件在安全的 WebAssembly 沙盒中运行 | | **事件钩子** | 对 VPN 状态变化、peer 事件、网络变化做出反应 | | **基于能力的权限控制** | 每个插件的细粒度权限 | | **热重载** | 无需重启即可安装、启用、禁用插件 | | **跨平台** | 单一插件二进制文件适用于所有平台 | ### 插件能力 | 能力 | 描述 | | ----------------- | --------------------------- | | `network-status` | 读取 VPN 连接状态 | | `peer-info` | 访问 peer 列表和状态 | | `event-hooks` | 订阅 VPN 事件 | | `http-client` | 发出出站 HTTP 请求 | | `key-value-store` | 持久化插件数据 | | `notifications` | 显示系统通知 | | `logging` | 写入应用程序日志 | ### 安装插件 ``` # 通过 CLI(v2.2.0) omniedge plugin list # List installed plugins omniedge plugin install ./plugin.zip # Install from ZIP file omniedge plugin uninstall
标签:Mesh网络, Rust, Tauri, VPN, 内网穿透, 可视化界面, 网络流量审计, 网络通信, 请求拦截, 边缘计算, 通知系统