612d68f56f488ed635a4077305817391d341f238
Go + Vue 管理台,SQLite 持久化;支持隧道/域名穿透、域名转发插件链、访客认证、 IP 规则、API Key、Docker 单镜像部署;配置通过 Web 系统设置管理,无需 YAML 文件。 Co-authored-by: Cursor <cursoragent@cursor.com>
Wormhole
内网穿透 + 反向代理网关(Go + Vue),SQLite 持久化 + 内存缓存。服务端与客户端为同一二进制,配置在 Web 管理台完成。
功能
- 客户端管理(Agent 注册、在线状态、verify_key)
- 域名解析(HTTP/HTTPS Host 反代)
- TCP/UDP 隧道
- IP 安全:精确/CIDR/正则白黑名单、请求 IP 监控、一键拉黑
- 统一登录 + 账号管理(admin/user)
- 资源级访问验证(Basic / 表单 / 回调)
- 仪表盘:流量与请求 IP 统计
快速开始
make install
make build
# 启动服务端(无需配置文件,默认 admin/admin)
make run
# 或: ./bin/wormhole server
# 在管理台「系统设置」中调整端口等参数
# 启动客户端 Agent(仅需命令行参数)
./bin/wormhole agent -server 127.0.0.1:8528 -key <verify_key>
管理界面:http://127.0.0.1:8529(首次启动默认端口,可在系统设置中修改)
Docker(单一镜像)
# 服务端
docker run -d --name wormhole \
-p 8529:8529 -p 8528:8528 -p 8081:8081 -p 8443:8443 \
-v wormhole-data:/app/data \
registry.rc707blog.top/rose_cat707/wormhole:latest
# Agent(同一镜像;务必加 --restart,服务端重启后 Agent 会自动重连)
docker run -d --name wormhole-agent \
--restart=unless-stopped \
--network host \
registry.rc707blog.top/rose_cat707/wormhole:latest \
agent -server <服务端IP>:8528 -key <verify_key>
注意:Agent 容器必须与 Server 分开部署。更新 Server 镜像时不要用同一 compose 重建 Agent;Agent 需
--restart=unless-stopped,否则收到SIGTERM后容器会保持Exited状态。
命令
| 命令 | 说明 |
|---|---|
wormhole server |
启动服务端 |
wormhole agent -server <地址> -key <verify_key> |
启动 Agent |
数据与配置存储在 ./data/wormhole.db(SQLite)。
默认端口
| 端口 | 用途 |
|---|---|
| 8529 | 管理 API + Web UI |
| 8528 | Agent Bridge |
| 8081 | HTTP 域名反代 |
| 8443 | HTTPS 域名反代 |
可在管理台 系统设置 中修改(监听端口变更需重启服务)。
默认账号
- 用户名:
admin - 密码:
admin