版本 v4.7 — 提供两套脚本,覆盖单机和同机双模式部署场景,内置智能版本选择、systemd 服务管理、tmux TUI 状态查看。
wget -4 -O ppp_install.sh https://raw.githubusercontent.com/picetor/openppp2_install/main/ppp_install.sh && chmod +x ppp_install.sh && ./ppp_install.shwget -4 -O ppp_install.sh https://git.apad.pro/https://raw.githubusercontent.com/picetor/openppp2_install/main/ppp_install.sh && chmod +x ppp_install.sh && ./ppp_install.shwget -4 -O ppp_dual.sh https://raw.githubusercontent.com/picetor/openppp2_install/main/ppp_dual.sh && chmod +x ppp_dual.sh && ./ppp_dual.shwget -4 -O ppp_dual.sh https://git.apad.pro/https://raw.githubusercontent.com/picetor/openppp2_install/main/ppp_dual.sh && chmod +x ppp_dual.sh && ./ppp_dual.sh| 场景 | 推荐脚本 |
|---|---|
| 只运行服务端 (VPS 提供 VPN 接入) | ppp_install.sh |
| 只运行客户端 (连接远程服务端) | ppp_install.sh |
| 同机同时运行服务端+客户端 | ppp_dual.sh |
| 特性 | ppp_install.sh (单模式) | ppp_dual.sh (双模式) |
|---|---|---|
| 安装目录 | /opt/ppp/ | /opt/ppp/server/ + /opt/ppp/client/ |
| systemd 服务 | ppp.service | ppp-server.service + ppp-client.service |
| tmux 会话 | ppp | ppp-server / ppp-client |
| 快捷命令 | ppp | ppp 或 ppp-dual |
| 二进制位置 | /opt/ppp/ppp | /opt/ppp/ppp (共享) |
| 服务端安装 | 1.1/1.2 | 1.1/1.2 |
| 客户端安装 | 2.1/2.2 | 2.1/2.2 |
| 同机双装 | 不支持 | 1.3 服务端+客户端同时安装 |
| 重启/停止 | 直接操作 ppp.service | 自动检测, 菜单选择 |
- 用途: 自动化部署、配置、管理 openppp2 (隧道 VPN 工具)
- 运行环境: Linux (支持多种架构)
- 管理方式: systemd 系统服务 + tmux 会话管理
- 多仓库支持: liulilittle/openppp2 (原版), Miaocchi/openppp2 (扩展版), picetor/openppp2 (WSS 修改版)
- ppp_install.sh: 创建 /usr/local/bin/ppp
- ppp_dual.sh: 额外创建 /usr/local/bin/ppp-dual
- has_aesni(): CPU 是否支持 AES-NI
- kernel_supports_io_uring(): 内核是否 >= 5.10
- has_tc(): 是否安装 tc
- glibc_lt_238(): glibc 是否低于 2.38 (纯 bash, 无 bc 依赖)
根据 CPU 架构和系统特性, 从 GitHub Releases 下载最优版本。
自动安装: jq, uuid-runtime, unzip, tmux
国内用户可选 https://git.apad.pro/ 代理加速。
| 选项 | 功能 | 单脚本 | 双脚本 |
|---|---|---|---|
| 1.1 完整自动安装 | 选代理->选仓库->装依赖->下载二进制->启动脚本->配置 appsettings.json->BDP 优化->创建 systemd 服务 | 支持 | 支持 |
| 1.2 仅配置系统服务 | 已有配置文件时只配置服务和启动脚本 | 支持 | 支持 |
| 1.3 服务端+客户端同时安装双模式 | 同机部署, 双目录+双服务+双 tmux | 不支持 | 支持 |
| 选项 | 功能 | 单脚本 | 双脚本 |
|---|---|---|---|
| 2.1 完整自动安装 | 安装二进制+客户端启动脚本, 配置服务 | 支持 | 支持 |
| 2.2 仅配置系统服务 | 已有二进制时只配置服务 | 支持 | 支持 |
| 2.3 切换配置文件 | 扫描 JSON, sed 修改 --config | 支持 | 支持 |
| 2.4 BDP 窗口计算器 | 带宽x延迟计算 CWND/RWND, 三档可选 | 支持 | 支持 |
| 2.5 修改 GUID | 修改 client.guid | 支持 | 支持 |
| 选项 | 功能 | 单脚本 | 双脚本 |
|---|---|---|---|
| 3 更新二进制 | 重新下载 ppp 二进制 | 支持 | 支持 |
| 4 重启服务 | 单: 重启 ppp.service; 双: 菜单选 1服务/2客户/3全部 | 支持 | 支持 |
| 5 停止服务 | 自动检测运行中的服务 | 支持 | 支持 |
| 6 查看运行状态 | tmux attach (Ctrl+B D 退出); 双脚本菜单选择 | 支持 | 支持 |
| 7 完全卸载 | 停止服务, 删除单元, 可选保留配置 | 支持 | 支持 (清理全部3个服务) |
| 8 更新本脚本 | 从 GitHub 拉取最新版 | 支持 | 支持 (各自拉取自身) |
| 9 退出 | 退出脚本 | 支持 | 支持 |
/opt/ppp/
ppp # 共享二进制
server/
ppp-server.sh # 服务端启动脚本 (tmux: ppp-server)
appsettings.json # 服务端配置
client/
ppp-client.sh # 客户端启动脚本 (tmux: ppp-client)
*.json # 客户端配置文件
- ppp-server.service -> ExecStart: /bin/bash /opt/ppp/server/ppp-server.sh
- ppp-client.service -> ExecStart: /bin/bash /opt/ppp/client/ppp-client.sh
- ppp-server: 显示服务端 TUI
- ppp-client: 显示客户端 TUI
脚本使用 jq 操作 JSON:
- 服务端: 自动生成 appsettings.json, 配置 IP/端口/GUID/密钥
- 客户端: 多配置文件, 通过 --config=./xxx.json 指定
- 智能回退 get_current_config():
- 从启动脚本提取 --config 参数
- 回退到 appsettings.json
- 回退到目录下任意 .json
- 公式: 窗口 = 带宽(bps) / 8 x RTT(ms) / 1000, 向上取 2 的幂次
- 自动测延迟: Ping 1.1.1.1, 失败则手动输入
- 三档策略: 保守 / 均衡(默认) / 激进
config/
appsettings.json # 服务端配置模板 (通用)
ppp.service # systemd 单元 (单模式)
ppp.sh # 服务端启动脚本 (单模式)
client.sh # 客户端启动脚本 (单模式)
ppp-server.service # systemd 单元 - 服务端 (双模式)
ppp-client.service # systemd 单元 - 客户端 (双模式)
ppp-server.sh # 服务端启动脚本 (双模式)
ppp-client.sh # 客户端启动脚本 (双模式)
- 零依赖检测: glibc_lt_238() 纯 bash, 无 bc 依赖
- 低版本兼容: Miaocchi 版低 glibc 自动选 debian10 包
- IPv4/IPv6 双栈: wget 自动回退
- 非侵入式更新: 更新二进制时自动重启运行中的服务
- 配置保护: 卸载时可选保留配置文件
- 状态可视化: tmux attach 完美显示 TUI
- 一单一双双脚本: 单模式简洁, 双模式灵活, 互不干扰
总结: 覆盖 openppp2 全生命周期管理的自动化工具集, 单机单用选 ppp_install.sh, 同机双开选 ppp_dual.sh.