[点晴永久免费OA]OmniWire:一个功能强大的网络安全网关系统,集成了 WireGuard VPN 服务端管理、TCP/UDP 端口转发、智能端口管理等核心功能
OmniWire 是一个功能强大的网络安全网关系统,集成了 WireGuard VPN 服务端管理、TCP/UDP 端口转发、智能端口管理等核心功能。采用 GoFrame 作为后端框架,Vue 3 作为前端框架,提供现代化的 Web 管理界面。
项目地址:https://github.com/weideng365/OmniWire
┌─────────────────────────────────────────────────────────────┐
│ Web Browser │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Vue 3 Frontend │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Dashboard │ │ WireGuard │ │ Port Forward │ │
│ │ │ │ Management │ │ Management │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│ Axios + Bearer Token
▼
┌─────────────────────────────────────────────────────────────┐
│ GoFrame Backend │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ JWT Middleware (白名单: /login, /health) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ API Layer │ │ Service │ │ Data Access │ │
│ │ Controller │ │ Layer │ │ Layer (DAO) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Core Services │ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ │ │
│ │ │ WireGuard │ │ TCP/UDP │ │ Port │ │ │
│ │ │ Service │ │ Forward │ │ Manager │ │ │
│ │ └───────────┘ └───────────┘ └───────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ System Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ WireGuard │ │ iptables/ │ │ SQLite/MySQL │ │
│ │ Kernel │ │ nftables │ │ Database │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
git clone https://github.com/weideng365/OmniWire.git
cd OmniWire
cd server
go mod tidy
go run main.go # 默认监听 :8110
cd web
npm install
npm run dev # 默认监听 :4000,自动代理 /api 到 :8110
打开浏览器访问 http://localhost:4000
adminadmin123首次登录后请立即在「系统设置」中修改默认密码。
docker-compose up -d
容器暴露端口:
8080 — Web 管理界面51820/udp — WireGuard VPN# 构建前端(输出到 server/resource/public)
cd web && npm run build
# 构建后端二进制(SQLite 需要 CGO_ENABLED=1)
cd server && CGO_ENABLED=1 go build -o omniwire main.go
# 运行
./omniwire
/login 和 /health)需携带 Authorization: Bearer <token> 头配置文件位于 server/manifest/config/config.yaml
# 服务器配置
server:
address:":8110" # 监听地址(Docker 中为 :8080)
# 数据库配置
database:
default:
type:"sqlite"
link:"sqlite::@file(./data/omniwire.db)"
# WireGuard 配置
wireguard:
interface:"omniwire" # 接口名称
listenPort:51820 # 监听端口
addressRange:"10.66.66.0/24"# VPN 子网
# 安全配置
security:
jwtSecret:"omniwire-secret-key-change-in-production"# 生产环境务必修改!
tokenExpire:"24h" # Token 过期时间
authEnabled:true # 是否启用登录验证
/api/v1/system/login | |||
/api/v1/system/change-password | |||
/api/v1/system/info | |||
/api/v1/system/dashboard | |||
/api/v1/system/health | |||
/api/v1/wireguard/status | |||
/api/v1/wireguard/start | |||
/api/v1/wireguard/stop | |||
/api/v1/wireguard/restart | |||
/api/v1/wireguard/config | |||
/api/v1/wireguard/config | |||
/api/v1/wireguard/peers | |||
/api/v1/wireguard/peers | |||
/api/v1/forward | |||
/api/v1/forward | |||
/api/v1/forward/:id | |||
/api/v1/forward/:id | |||
/api/v1/port/scan | |||
/api/v1/port/check/:port | |||
/api/v1/port/listen |
config.yaml 中的 jwtSecret,使用随机强密钥admin123169.254.x.x(APIPA)地址,表示 IP 配置失败NET_ADMIN 和 SYS_MODULE 权限net.ipv4.ip_forward=1./data 目录存放 SQLite 数据库./data/omniwire.db 文件后重启即可在阿里云、腾讯云等云服务器上部署时,除了系统防火墙(iptables/firewalld)外,还需要在云控制台的安全组中放行相应端口:
8110(或自定义端口),用于访问管理界面51820(或自定义端口),用于 VPN 连接0.0.0.0/0 全开策略OmniWire/
├── server/ # 后端服务 (GoFrame)
│ ├── api/v1/ # API 接口定义(按领域划分)
│ ├── internal/
│ │ ├── cmd/ # 命令行入口、路由注册、JWT 中间件、数据库初始化
│ │ ├── controller/ # 控制器层(HTTP 处理器)
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── wgserver/ # WireGuard 服务器生命周期管理
│ │ │ ├── wireguard/ # WireGuard 业务逻辑
│ │ │ ├── forward/ # TCP/UDP 端口转发引擎
│ │ │ └── port/ # 端口扫描和监控
│ │ ├── model/ # 数据模型
│ │ └── dao/ # 数据访问层
│ ├── manifest/config/ # 配置文件 (config.yaml)
│ ├── resource/public/ # 前端构建输出(生产环境静态文件)
│ ├── go.mod
│ └── main.go # 程序入口
│
├── web/ # 前端应用 (Vue 3)
│ ├── src/
│ │ ├── api/ # API 接口封装(Axios)
│ │ ├── layouts/ # 布局组件
│ │ ├── router/ # 路由配置(含路由守卫)
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── views/ # 页面视图
│ │ ├── App.vue
│ │ └── main.js
│ ├── index.html
│ ├── package.json
│ └── vite.config.js # Vite 配置(开发代理 /api → :8110)
│
├── Dockerfile # 多阶段构建
├── docker-compose.yml
└── README.md
阅读原文:原文链接