共计 5592 个字符,预计需要花费 14 分钟才能阅读完成。

ForwardX 是一套中文化的多主机转发管理系统。它通过轻量 Agent 管理服务器入口、隧道链路、端口转发规则、转发组、DDNS 故障转移、用户权限、套餐订阅、余额和流量统计,适合把多台服务器统一组织成可观测、可切换、可授权、可计费的网络入口平台。
演示站点:https://panel.aipanel.top
账户:test111
密码:123456
功能
多主机 Agent 管理,无需在面板保存 SSH 密钥。
支持 TCP、UDP、TCP+UDP 转发规则。
支持 iptables、nftables、realm、socat、gost 等转发方式。
支持 GOST 隧道和 ForwardX 自定义加密隧道。
支持转发组,把多个主机入口或隧道入口作为一个高可用入口使用。
支持转发组成员优先级拖拽排序,默认按高优先级到低优先级故障转移。
支持 DDNS 故障转移,当前支持 Cloudflare 和 Webhook 服务商。
支持服务恢复后自动切回原入口,也可以关闭切回等待当前入口故障后再切换。
支持 TCPing 链路探测、流量统计、最近趋势、系统日志和 DDNS 事件记录。
支持用户到期时间、流量额度、端口数、规则数、主机权限和隧道权限管理。
支持开放注册开关,关闭后只能由管理员新增用户。
支持套餐、余额、兑换码、折扣码、商店开关和支付方式配置。
支持邮件验证码、套餐到期提醒、流量不足提醒和 Telegram 机器人。
支持面板和 Agent 在线升级。
转发模型
ForwardX 里常用的入口方式有三类:
| 模式 | 适用场景 | 说明 |
|---|---|---|
| 主机端口转发 | 入口和目标都可以由单台主机直接处理 | 在转发规则中选择所属主机、协议、入口端口和目标地址 |
| 隧道转发 | 入口机和出口机不同,或需要加密链路 | 先创建隧道,再在转发规则中选择隧道入口 |
| 转发组 | 多台机器对同一目标提供同一服务入口 | 在转发组中维护成员和 DDNS 策略,在转发规则中选择转发组生成成员规则 |
转发组不会在组内直接设置真实转发目标。转发组只维护入口成员、成员优先级、DDNS 域名和故障转移策略;入口端口、协议、目标 IP 和目标端口仍然在「转发规则」中配置。这样同一个转发组可以像普通主机或隧道一样被多条转发规则复用。
转发组与故障转移
转发组用于解决多机器同时转发和入口高可用问题:
- 在「转发组」中创建主机组或隧道组。
- 添加多个入口成员,并通过鼠标拖动调整优先级。
- 配置 DDNS 域名、记录类型、故障转移时间和是否恢复后切回。
- 在「转发规则」中选择转发组,填写入口端口、协议和目标地址。
- ForwardX 会为组内成员生成同一目标的真实转发规则,并根据 TCPing 健康数据执行故障转移。
故障转移默认从高优先级成员切到低优先级成员。开启「恢复后切回」后,高优先级成员恢复可用时会主动切回;关闭后会保持当前成员,直到当前成员再次故障才触发下一次切换。
DDNS 操作会写入系统日志和转发组事件,包括跳过、当前记录一致、开始更新、切换成功和更新失败,便于追踪域名入口变化。
数据库
首次部署时可以选择 SQLite、MySQL 或 PostgreSQL:
- SQLite 适合单机轻量部署,默认数据文件为
/data/forwardx.db或本地安装目录下的data/forwardx.db。 - MySQL 适合生产环境、长期运维和跨机器迁移。
- PostgreSQL 适合已有 PostgreSQL 运维体系或偏好 PostgreSQL 的生产环境。
- 首次打开面板会进入初始化向导,先选择数据库,再选择新面板或从旧面板迁移。
- 如果连接的是已有数据库,且里面已经存在管理员账户,会直接进入登录流程。
- 原地升级会保留已有配置和数据;Docker 部署会保留数据卷,本地 systemd 部署会保留安装目录下的
data目录。 - 数据库备份建议由用户在 SQLite 文件、MySQL 或 PostgreSQL 侧自行维护。
MySQL 和 PostgreSQL 默认连接池按约 30 台 Agent 主机的常规生产使用量配置:最大连接数 50、空闲连接 10、连接最长生命周期 30 分钟、空闲回收 5 分钟、连接超时 6000 毫秒。小规模部署(例如 7-8 台主机)可降到 DATABASE_MAX_OPEN_CONNS=20、DATABASE_MAX_IDLE_CONNS=5;30 台左右建议先使用默认值;更大规模或多管理员高频查看时再逐步提高到 80-100 最大连接和 20-40 空闲连接。
这些参数通过环境变量调整,MySQL 和 PostgreSQL 共用同一组连接池变量;SQLite 不使用连接池参数。调整时要同时确认数据库服务端的连接上限:PostgreSQL 的 max_connections、MySQL 的 max_connections 应大于所有 ForwardX 实例 DATABASE_MAX_OPEN_CONNS 的总和,并预留运维、备份和其他程序连接余量。Docker 部署可在部署目录 .env 中增加变量后重启容器;本地 systemd 部署可在服务环境变量或安装目录环境配置中增加变量后重启 forwardx-panel.service。
快速部署
面板默认监听 3000 端口。
以下命令请以 root 用户执行;如果当前不是 root,把命令中的 bash 替换为 sudo bash。
本地 systemd 部署
安装:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-local.sh | bash -s -- install
升级:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-local.sh | bash -s -- upgrade
卸载:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-local.sh | bash -s -- uninstall
默认路径:
| 项目 | 路径 |
|---|---|
| 安装目录 | /opt/forwardx-panel |
| 服务名称 | forwardx-panel.service |
| 数据库配置 | /opt/forwardx-panel/data/database.json |
| SQLite 数据文件 | /opt/forwardx-panel/data/forwardx.db |
Docker Compose
部署 安装:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-docker.sh | bash -s -- install
升级:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-docker.sh | bash -s -- upgrade
卸载:
curl -fsSL https://raw.githubusercontent.com/poouo/Forwardx/main/scripts/install-panel-docker.sh | bash -s -- uninstall
Docker 部署默认会把数据库配置保存到数据卷中的 /data/database.json,SQLite 数据文件保存在 /data/forwardx.db。默认拉取 ghcr.io/poouo/forwardx:latest 预编译镜像,不会在用户服务器上重新构建镜像。安装和升级会保留 .env、Docker 数据卷和部署目录内的 data/ 数据;只有执行卸载脚本并输入 y 后才会删除部署目录和 Docker 数据卷。
首次初始化
- 访问
http:// 服务器 IP:3000。 - 选择 SQLite、MySQL 或 PostgreSQL,并完成连接检测。
- 选择作为新面板使用,或输入旧面板地址和管理员账户发起迁移。
- 如果是新库,注册第一个管理员账户;如果是旧库或迁移完成,直接使用原管理员账户登录。
- 登录后建议在系统设置中配置面板公开地址、Agent Token、邮件、开放注册和 DDNS 服务商。
安装 Agent
在面板「系统设置 -> Agent Token」中创建 Token,然后在被管理的 Linux 主机上执行:
curl -fsSL http:// 你的面板地址:3000/api/agent/install.sh | bash -s -- install YOUR_AGENT_TOKEN
升级 Agent:
curl -fsSL http:// 你的面板地址:3000/api/agent/install.sh | bash -s -- upgrade YOUR_AGENT_TOKEN
卸载 Agent:
curl -fsSL http:// 你的面板地址:3000/api/agent/install.sh | bash -s -- uninstall
基本使用流程
部署 ForwardX 面板并完成数据库初始化。
在「系统设置」中创建 Agent Token。
在被控服务器安装 Agent。
在「主机管理」中确认 Agent 在线。
在「隧道管理」中创建需要的 GOST 或 ForwardX 隧道。
在「转发组」中按需创建主机组或隧道组。
在「转发规则」中选择主机、隧道或转发组创建真实转发。
在「系统日志」和转发组事件中观察 DDNS、故障转移和规则同步状态。
隧道说明
ForwardX 支持两类隧道:
- GOST 隧道:使用 GOST 提供的 TLS、WSS、TCP、MTLS、MWSS、MTCP 等模式。
- ForwardX 自定义加密隧道:由 ForwardX Agent 建立入口到出口的加密链路,支持 TCP/UDP、按规则流量统计和用户限速。
自定义加密隧道可以在入口和出口 Agent 下方指定出口 IP。不填写时默认走公网出口;填写内网 IP 时,会优先使用指定内网 IP 作为链路出口。
Telegram 机器人
在 Telegram 找到 @BotFather 创建机器人并复制 Bot Token。
- 在面板「系统设置 -> 系统信息 -> Telegram 机器人」填写 Token 并启用;也可以通过环境变量
TELEGRAM_BOT_TOKEN配置。 - 用户登录面板后,在右下角用户菜单点击「绑定 Telegram」,再点击「使用 Telegram 绑定」。
- Telegram 会打开机器人并携带一次性绑定码,点击 Start 即可完成绑定;也可以手动发送
/bind 绑定码。
绑定后可使用:
/usage:查询自己的流量、到期时间、规则 / 端口配额。/rules:查看自己的转发规则。/enable 规则 ID、/disable 规则 ID:启用或停用自己的规则。/login:生成 5 分钟有效的一次性网页登录链接。/unbind:解除当前 Telegram 绑定。
管理员绑定 Telegram 后还可使用 /users 查看用户流量概览,使用 /reset 用户 ID 重置指定用户流量。机器人采用 Telegram 长轮询,不需要配置 webhook;服务器需要能访问 api.telegram.org。
用户、套餐与支付
管理员可以:
- 控制访客是否开放注册,关闭后只能由管理员新增用户。
- 创建用户并设置总开关、到期时间、流量额度、规则数、端口数、连接数和 IP 接入限制。
- 分配可用主机和可用隧道。
- 创建套餐并配置价格、周期、流量、端口数和权限范围。
- 开启或关闭商店功能。
- 配置支付接口。商店开启后,用户在购买时选择管理员已启用的支付方式。
- 生成余额兑换码、套餐兑换码和折扣码。
商店默认关闭。关闭时,管理员可以手动给用户充值、分配套餐或调整权限。
流量与限制
流量按 Agent 上报的规则增量累计。
- 首页趋势图默认按 30 分钟聚合展示。
- TCPing 默认用于链路健康探测和延迟趋势展示。
- GOST 和 ForwardX 自定义加密隧道支持用户限速。
iptables、nftables、realm、socat当前主要用于转发和统计,不作为限速主路径。- 连接数限制主要针对 TCP 生效;隧道转发按隧道维度聚合,端口转发按主机维度聚合。
手动 Docker Compose
git clone https://github.com/poouo/Forwardx.git
cd Forwardx
docker compose -p forwardx pull forwardx
docker compose -p forwardx up -d
Docker Compose 默认会拉取 GitHub Packages 上的预编译镜像 ghcr.io/poouo/forwardx:latest,服务器本地不需要再执行镜像编译。手动升级时重新拉取 latest 并重启容器即可,数据卷会保留:
git fetch --force --prune origin "+refs/heads/*:refs/remotes/origin/*" "+refs/tags/*:refs/tags/*"
git checkout main
docker compose -p forwardx pull forwardx
docker compose -p forwardx up -d --remove-orphans
本地开发
pnpm install
pnpm dev
构建与版本校验:
pnpm build
pnpm check:versions
Android APK
ForwardX Android 客户端用于手机端访问面板,登录时填写面板地址、账号和密码即可。
下载地址:https://github.com/poouo/Forwardx/releases/download/v2.3.137/forwardx-android-v2.3.42.apk
常用命令:
pnpm mobile:sync:android
pnpm mobile:apk