基于 Bash 的 Linux 代理服务器一站式管理工具,通过 psm 命令统一管理代理协议、Nginx、SSL 证书、流量统计、Docker 等服务。
_ ___ ____ ____ __ __
| | / _ \ | _ \ / ___| | \/ |
_ | | | | | | | |_) | \___ \ | |\/| |
| |_| | | |_| | | __/ ___) | | | | |
\___/ \__\_| |_| |____/ |_| |_|
Proxy Stack Manager ····· ◆ jinqians.com
──────────────────────────────────────────
IP ▶ x.x.x.x Nginx ▶ 1.x.x
Xray ▶ x.x.x Hysteria2 ▶ 2.x.x
──────────────────────────────────────────
以 root 身份在 VPS 上执行,自动安装至 /opt/psm 并注册 psm 命令。
使用 curl(推荐):
bash <(curl -fsSL https://psm.jinqians.com)使用 wget(系统未安装 curl 时):
bash <(wget -qO- https://psm.jinqians.com)已安装的机器上重复执行同一命令,将自动
git pull更新,不会重新运行安装向导。
psm代理协议
- Xray — Reality / Vision / XHTTP,多节点管理,自动生成密钥对,导出 URI / Clash / Sing-box
- Hysteria2 — UDP 代理,密码认证,带宽限制,masquerade 伪装
- Snell — v4/v5/v6,PSK 认证,Surge 格式导出
- SS 2022 — shadowsocks-rust,
ss://URI 导出
基础服务
- Nginx — SNI 多协议分流,站点管理
- SSL 证书 — acme.sh 自动签发(HTTP-01 / DNS-01 通配符),自动续期
- Cloudflare DDNS — DNS 记录管理,定时动态更新公网 IP
- Docker — 安装管理,一键应用商店
运维工具
- 流量管理 — 按节点设置月度限额,达阈值自动暂停,每分钟统计,月末自动重置
- Telegram Bot — 机器人查询各节点流量用量、剩余额度和下次重置日期
- 备份管理 — 全量/选择性备份,定时备份,一键恢复
- 系统管理 — BBR、sysctl 调优、防火墙、DNS
- 自动更新 — 启动时自动
git pull,菜单内支持组件升级
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu · Debian · CentOS / RHEL · Fedora |
| 运行权限 | root |
| 系统架构 | x86_64 · arm64 |
| 基础依赖 | curl 或 wget(预装其一即可)· git(bootstrap 自动安装) |
其余依赖(jq、openssl、socat、qrencode、unzip、iptables 等)在各模块首次使用时自动安装。
bash <(curl -fsSL https://psm.jinqians.com)执行流程:
- 检测并安装
git/curl(如缺失) - 将项目克隆到
/opt/psm - 运行交互式安装向导
- 在
/usr/local/bin/psm创建命令软链接
git clone https://github.com/jinqians/proxy-stack.git /opt/psm
bash /opt/psm/install.sh| 步骤 | 默认 |
|---|---|
| 系统优化(BBR、sysctl、文件描述符限制) | 是 |
| 安装 Nginx | 是 |
| 安装 Xray-core | 是 |
| 安装 acme.sh(SSL 证书) | 是 |
| 安装 Hysteria2 | 是 |
| 配置防火墙(仅放行 22 / 443 端口) | 是 |
# 打开交互式主菜单
psm
# 直接调用脚本
bash /opt/psm/manager.shmanager.sh --ddns-update # 立即执行 Cloudflare DDNS 更新
manager.sh --backup-full # 立即执行全量备份
manager.sh --backup-quick [标签] # 执行快速备份(可附加描述标签)
manager.sh --update # 更新 PSM 脚本和组件
manager.sh --traffic-check # 执行一次流量统计检查(由 systemd timer 调用)
manager.sh --tgbot # 启动 Telegram Bot 守护进程(由 systemd service 调用)══════════════════════════════════════════════════════════════
JQ's Proxy Stack Manager
══════════════════════════════════════════════════════════════
1. 系统管理 9. Cloudflare DDNS
2. Nginx 管理 10. 网站管理
3. Xray 管理 11. 查看所有节点
4. Hysteria2 管理 12. 备份管理
5. Snell 管理 13. 恢复备份
6. SS 2022 管理 14. 更新 PSM
7. Docker 管理 15. 流量管理
8. SSL 证书管理 16. Telegram Bot
──────────────────────────────────────────────────────────────
0. 退出
══════════════════════════════════════════════════════════════
- 自动生成 x25519 密钥对和 Short ID,支持多节点
- 可修改:UUID、密钥对、Short ID、ServerName、Flow、Dest
- 导出格式:VLESS URI(含二维码)、Clash Meta、Sing-box
- 基于域名 TLS 证书,使用
xtls-rprx-visionflow - 自动配置 Nginx SNI 分流路由
- 导出格式:VLESS URI(含二维码)
| 模式 | 说明 |
|---|---|
xhttp / SplitHTTP |
推荐,基于 HTTP/2 分片传输 |
upgrade / WebSocket |
传统 WS 传输 |
grpc |
gRPC 传输 |
reality-layer |
SplitHTTP + Reality(无需 TLS 证书) |
- 监听 UDP 443,密码认证,masquerade 伪装为 HTTPS 站点
- 可修改:密码、上传/下载带宽限制、TLS 证书
- 导出格式:Hysteria2 URI、Clash Meta 配置
- 支持 Snell v4 / v5 / v6,PSK 认证
- 配置路径:
/etc/snell/users/snell-main.conf - 导出格式:Surge Proxy Line
- 通过 jinqians/snell.sh 安装/更新
- shadowsocks-rust(
ss-rust),配置路径:/etc/ss-rust/config.json - 导出格式:
ss://URI(含二维码) - 通过 jinqians/ss-2022.sh 安装/更新
对每个代理节点独立设置月度流量配额,超限后自动暂停,不影响其他节点。
| 节点类型 | 计量方式 |
|---|---|
| Xray(Reality / Vision / XHTTP) | Xray Stats API(gRPC) |
| Snell / SS 2022 | iptables mangle PREROUTING/POSTROUTING 字节计数 |
主要特性:
psm-traffic.timer每分钟统计一次,持久化到config/traffic/state.json- 每月指定日期自动重置计数
- 超限后通过 iptables DROP 规则暂停端口,可手动恢复
- 卸载协议或删除节点时自动清除对应流量记录
使用流程: 菜单 15 · 流量管理 → 添加节点监控,输入 tag、端口、限额(GB)、重置日。
通过 Telegram 机器人查询节点流量,无需登录服务器。
| 命令 | 功能 |
|---|---|
/start / /help |
显示帮助 |
58912(端口号) |
查询该端口流量 |
/traffic <端口> |
同上 |
/list |
列出所有监控节点 |
/id |
查询自己的 Telegram ID |
配置: 菜单 16 · Telegram Bot → 配置 Bot Token,输入 @BotFather 签发的 Token,可选设置用户 ID 白名单。
| 方式 | 适用场景 |
|---|---|
| HTTP-01 | 服务器有公网 80 端口 |
| DNS-01 | 通配符证书(Cloudflare / DNSPod / 阿里云 / 手动) |
| 手动导入 | 直接提供fullchain.pem + privkey.pem |
证书路径:/etc/nginx/ssl/<域名>/,自动注册续期 cron。
- API Token 或 Global API Key 认证
- DNS 记录查询、添加、删除
- 定时将公网 IP 更新至 Cloudflare A 记录(间隔 1–60 分钟,cron 安装至
/etc/cron.d/psm-ddns) - 支持一键 DNS-01 签发通配符证书
备份内容: Nginx · Xray · Hysteria2 · Snell · SS 2022 · SSL 证书 · Docker Compose · PSM 状态 · 流量统计
- 压缩为
.tar.gz,自动轮转保留最近 10 份 - 支持每日定时全量备份(cron)
- 恢复时可按组件选择性恢复
/opt/psm/
├── bootstrap.sh # 一键安装入口
├── manager.sh # 主入口(交互菜单)
├── install.sh # 首次安装向导
├── update.sh # 自更新和组件升级
├── uninstall.sh # 引导式卸载
├── config/
│ ├── psm.state # 状态存储
│ ├── xray/ # Xray 节点 JSON
│ ├── traffic/ # 流量统计状态
│ ├── tg_bot.conf # Telegram Bot 配置
│ ├── http/ # Nginx HTTP 配置片段
│ └── stream/ # Nginx SNI 配置片段
├── lib/
│ ├── common.sh # 公共工具函数
│ ├── xray.sh / reality.sh / vision.sh / xhttp.sh
│ ├── hysteria2.sh / snell.sh / ss2022.sh
│ ├── nginx.sh / cert.sh / cloudflare.sh
│ ├── docker.sh / system.sh / backup.sh
│ ├── traffic.sh # 流量管理
│ └── tg_bot.sh # Telegram Bot
├── templates/ # 配置模板
└── backup/ # 备份归档
bash /opt/psm/uninstall.sh对每个组件逐一询问是否删除,备份文件默认保留。
本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 开源协议。
- 允许自由使用、修改和分发
- 修改后的版本必须以相同协议开源
- 通过网络提供服务时,也须公开对应的源代码