Hylintech FRP 是围绕官方 frps / frpc 构建的管理后台与客户端 Agent。
后台统一保存设备与隧道配置,Agent 主动连接后台并托管本机 frpc 进程——
FRP 数据流不经过后台 API,性能与官方一致。
Agent 通过 HTTPS 控制连接与后台通信;frpc → frps 的隧道数据流直连,不经过后台,保持官方 FRP 的原生转发能力。
从后台管理到免安装分发,再到流量统计与在线升级,一条链路全部覆盖。
用户、设备、隧道一站式管理:创建用户与端口额度、重置密码、批量创建隧道、审计日志,全部通过自带 Web 后台完成。
每 5 分钟采样 frps 管理 API,按日归档并保留 90 天;后台 7/30 天趋势柱状图,客户端面板实时展示今日流量。
口令哈希 + 会话/设备 Token 鉴权、登录失败限流、安全响应头与 CSP、异常统一响应不泄露细节,SQLite 每日一致性快照备份。
esbuild + postject 打包为免 Node.js 的单文件,内嵌 frpc,覆盖 linux-amd64 / arm64、macOS、Windows;目标机器零安装。
$ ./dist/hylintech-agent-linux-x64 ✔ 生成 config.json 模板(JSONC) # 编辑后重启 ✔ 登录 ds.hylintech.com:12085 → 注册设备 AAA01 ✔ frpc 0.70.1 已解压到 agent-data/bin/ ✔ 隧道 ssh-01 已上线 → tcp://12086 → 31001 # 单次操作 $ ./hylintech-agent --apply-tunnel --name web-1 \ --type tcp --local-port 8080
完整能力清单,像图纸明细表一样逐项核对。
按「用户名 + 计算机名」自动注册 / 复用设备;同名机器重登即刷新 Token,旧 Token 立即失效。
客户端只需能主动访问 12085 / 12086,内网无需公网 IP,无需开放任何入站端口与防火墙规则。
启动 8 秒后自动检查更新,之后每 24 小时轮询;SHA-256 校验后替换并自动重启,支持 CLI 与桌面内嵌版。
TCP / UDP / HTTPS 统一管理;公网端口由系统自动分配,普通用户不可自定义,额度用完即拒绝。
单次最多 100 条(默认),任一条失败整批不生效并返回 400/409;HTTPS 域名全局唯一。
本地控制面板仅 127.0.0.1 可访问并带随机 Token 鉴权;Tauri 桌面应用双击即用,窗口内完成登录注册。
服务端部署、客户端接入、单文件与桌面应用构建,任选其一。
# 1. 安装官方 frps(在 server/ 目录执行) cd server node scripts/install-frp.mjs --target server --version 0.70.1 # 2. 配置 server/config/config.json(模板见 config.example.json) # 至少修改:admin.password、frp.authToken、frp.adminPassword、TLS 证书路径 # 3. PM2 启动两个应用:hylintech-frp-api + hylintech-frps pm2 start server/ecosystem.config.cjs pm2 save pm2 status
12085/tcp;也可放在 Nginx / Caddy 之后由它终止 TLS,参考 server/deploy/ 下的示例配置。# 1. 安装官方 frpc(在 client/ 目录执行) cd client node scripts/install-frp.mjs --target client --version 0.70.1 # 2. 复制配置模板并填写账号 cp agent/config.example.json agent/config.json # serverUrl / username / password 必填;name 留空默认用计算机名 # 3. 启动(Node.js 22+),Ctrl+C 同时停止 Agent 与 frpc node agent/index.mjs --config agent/config.json
{
"serverUrl": "https://ds.hylintech.com:12085",
"username": "cokin",
"password": "用户密码",
"name": "AAA01"
}
--list-tunnels、--apply-tunnel、--delete-tunnel 等单次操作。cd client npm install # 首次构建前安装 esbuild / postject npm run build:agent # 产物:dist/hylintech-agent-<平台> # 目标机器直接运行,首次运行自动生成 config.json 模板 ./dist/hylintech-agent-linux-x64
npm run build:all # macOS : dist/hylintech-agent-darwin-* + Hylintech FRP.app / dmg # Windows: dist/hylintech-agent-win32-x64.exe + msi / nsis exe # Linux : dist/hylintech-agent-linux-* + deb 包
| 端口 | 用途 |
|---|---|
| 12085/tcp | 后台网页、API、Agent 控制连接 |
| 12086/tcp | frps 主连接端口(数据流) |
| 12087/tcp | HTTPS 隧道入口 |
| 31000–31999/tcp | TCP 隧道 |
| 32000–32999/udp | UDP 隧道 |
Internal server error,不泄露内部细节服务端与客户端运行时均为零依赖;构建期只引入必要的打包工具。
两个项目独立开发、独立 npm install、独立测试;根目录的 npm run check / test / build:all 统一调度。
hylintech-frp/ ├── server/ # 服务端:管理后台 + API + Agent 控制连接 │ ├── index.mjs # HTTP(S) API 与 Agent 控制连接 │ ├── db.mjs # SQLite 存储、备份、流量归档 │ ├── frp.mjs # frps / frpc 配置生成 │ ├── security.mjs # 口令哈希、Token、限流 │ ├── public/ # 后台网页(index.html / app.js / styles.css) │ ├── scripts/ # frps-runner、install-frp │ ├── deploy/ # systemd / nginx 部署示例 │ ├── ecosystem.config.cjs # PM2:hylintech-frp-api + hylintech-frps │ └── test/ └── client/ # 客户端:Agent(CLI / GUI / 桌面) ├── agent/ # Agent 守护进程 + 本地控制面板 ├── client-cli/ # 最小分发包(不含服务器配置/数据) ├── desktop/ # Tauri 桌面应用 ├── scripts/ # 构建、安装 frpc、生成升级清单 ├── dist/ # 构建产物 └── test/