一个开源的ForwardX 转发管理面板

4次阅读
没有评论

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

一个开源的 ForwardX 转发管理面板

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 和目标端口仍然在「转发规则」中配置。这样同一个转发组可以像普通主机或隧道一样被多条转发规则复用。

转发组与故障转移

转发组用于解决多机器同时转发和入口高可用问题:

  1. 在「转发组」中创建主机组或隧道组。
  2. 添加多个入口成员,并通过鼠标拖动调整优先级。
  3. 配置 DDNS 域名、记录类型、故障转移时间和是否恢复后切回。
  4. 在「转发规则」中选择转发组,填写入口端口、协议和目标地址。
  5. 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=20DATABASE_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 数据卷。

首次初始化

  1. 访问 http:// 服务器 IP:3000
  2. 选择 SQLite、MySQL 或 PostgreSQL,并完成连接检测。
  3. 选择作为新面板使用,或输入旧面板地址和管理员账户发起迁移。
  4. 如果是新库,注册第一个管理员账户;如果是旧库或迁移完成,直接使用原管理员账户登录。
  5. 登录后建议在系统设置中配置面板公开地址、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。

  1. 在面板「系统设置 -> 系统信息 -> Telegram 机器人」填写 Token 并启用;也可以通过环境变量 TELEGRAM_BOT_TOKEN 配置。
  2. 用户登录面板后,在右下角用户菜单点击「绑定 Telegram」,再点击「使用 Telegram 绑定」。
  3. 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 自定义加密隧道支持用户限速。
  • iptablesnftablesrealmsocat 当前主要用于转发和统计,不作为限速主路径。
  • 连接数限制主要针对 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
正文完
 0
水东柳
版权声明:本文于2026-06-14转载自github,共计5592字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)