1. 环境要求
1.1 软件要求
1.1.1 操作系统 (OS)
名称与类型方面,需要是主流的操作系统,例如:OpenWrt、CentOS 或 Ubuntu。
架构要求操作系统应为 64bit OS。
基础工具:
操作系统建议支持 python、nc、curl 等工具(主要用于问题定位)。
必须支持 iptables,否则无法引流。


进程管理方面,平台需要支持 systemd 或 procd 或 rc.local 来管理进程和配置持久化,以便系统启动后能自动拉起加速程序对业务进行加速。如果系统不支持以上几种,则需要厂商自行编写启动脚本进行集成(例如中兴的设备适配难度较大,不建议采用)。
1.1.2 内核
内核版本需要在 4.4 以上 (>=4.4)。
编译参数方面,厂商固件在编译时需要打开 TUN 模块(必须)。
1.1.3 路由
系统必须支持策略路由。


策略路由管理:
如果策略路由由客户自行管理,则必须确保引流的策略路由优先级高于系统其他的路由。如果客户不关心策略路由,则引流策略路由可由 SDK 来管理(管理基于接口源 IP 的策略路由)。SDK 管理策略路由的前提是多条线路的对应网关要能被感知到。
默认路由方面,必须支持多条 default 路由,并能根据 metric 优选默认路由或支持 ECMP(等价多路径路由)。
1.1.4 其他
持久化:SDK 要求配置、日志和进程都具备持久化能力。
配置持久化:所有 SDK 下发的配置都会持久化保存,/usr/local/etc/mp-speeder 目录下的均为配置。需在固件升级后或重启后内容保持不变。
日志持久化:/var/log 目录(存放 mp-sdk 日志和 mp-speeder)需要是非易失的,否则无法定位问题。
若磁盘本身不具备权限,建议将对应目录挂载至可读写磁盘下,安装所需目录如下所示,详细的安装文件及路径可参考 SDK 安装目录结构。
/usr/local/bin/mp-speeder # 二进制文件目录/usr/local/etc/mp-speeder # 配置文件目录/usr/local/etc/mp-speeder/data # 数据文件目录
存储与内存:
内存:预留给多网聚合加速(腾讯云聚通)的内存建议大于 100MB(最小建议50MB)。内存占用与带宽和业务连接数相关。有内存瓶颈时,建议结合实际业务场景做实测。
存储:预留给多网聚合加速(腾讯云聚通)的存储空间最好大于 200MB。
远程运维(可选): 支持 SSH 等远程登录方法,可远程调试问题。
1.2 硬件要求
1.2.1 网络通信模块
聚合能力方面,支持丰富的配置组合,例如 4G+4G、4G+5G、5G+5G、单 4G 或单 5G。
蜂窝模块方面,建议 SIM 卡识别支持热插拔 。需要支持拨号状态、卡号、信号强度、运营商、IMEI、基站、IP、频段、模组版本等信息的展示。
Wi-Fi 模块方面,建议支持 2.4G 和 5.8G。
1.2.2 芯片算力 (CPU 及架构)
架构方面,ARM Cortex A72/A53/Cortex A7 的性能被认为比较差,MIPS 架构无法运行。
指令加速方面,需要支持 AES 指令加速,建议支持系统 socket buffer 配置。
终端芯片的性能评估与示例数据如下:
Cortex-A53(双核,800 MHz)的性能大约为 44 Mbps。
IPQ4019 的性能为下行 50 Mbps,上行 120 Mbps。
RK3568(Cortex-A55,2 GHz,四核)性能约为下行 250 Mbps,上行 300 Mbps。
Intel Atom C3558(X86,2.2 GHz,四核)性能可达 1 Gbps。
RK3588(四核 Cortex-A76 + 四核(Cortex-A55, 2.4GHz))性能约为下行 650 Mbps,上行 500 Mbps。
终端算力评估
CPU | 架构 | 核心 | 频率 | 性能 |
IPQ4019 | ARM | 2 | 800MHz | 44Mbps |
RK3568 Cortex-A55 | ARM | 4 | 2GHz | 上行120Mbps 下行250Mbps |
RK3399 | ARM | 4 | 1.8GHz | 200Mbps |
RK3588 4×Cortex-A76 + 4×Cortex-A55 | ARM | 8 | 2.4GHz | 上行300Mbps 下行650Mbps |
Intel Atom C3558 | x86 | 4 | 2.2GHz | 500Mbps |
Intel Xeon Cascade Lake 8255c | x86 | 2 | 2.5GHz(基频)/3.1GHz(睿频) | 1Gbps |
Marvell Armada 3720 Cortex-A53 | ARM | 2 | 1GHz | 上行50Mbps 下行50Mbps |
2. SDK 安装说明
Linux sdk 采用托管进程方式实现,sdk 安装后启动进程监听 HTTP 请求,用户通过 HTTP 请求进行配置下发及 sdk 的启停管理。
相关 API 参考 API 概览。
sdk 支持 BIN 包直装(基于 makeself 自解压脚本) vs 二进制手工部署二选一。
方案 A. 推荐:直接使用.BIN自解压包安装
适用场景(同时满足):
操作系统是通用 Linux 服务器/桌面发行版(CentOS / RHEL / Ubuntu / Debian / SUSE / Kylin / UOS / Anolis 等),或 OpenWrt / LEDE 路由器系统。
init 系统为 systemd、OpenWrt procd 或传统 rc.local 三者之一(绝大多数 Linux 都满足)。
客户允许 SDK 写入标准目录:/usr/local/bin、/usr/local/etc、/var/log、/etc/init.d 等。
客户允许我们接管/覆盖部分 sysctl 内核参数(rp_filter=0、accept_local=1 等)。
客户允许 SDK 自动注册系统服务(systemd unit / procd init 脚本 / rc.local 启动项)并以 root 常驻运行。
客户希望"一键安装、一键卸载、自动升级保留配置",不打算自行管理二进制位置和启停。
这种场景下,直接使用 MP_SDK_<version>_<arch>.BIN 一个文件即可:
sudo bash ./MP_SDK_<version>_<arch>.BIN
BIN 包会自动完成:架构识别 → 环境预检 → 拷贝二进制 → 写入配置 → 注册服务 → 启动进程,全程无需客户介入文件布局。
方案 B. 备选:单独交付二进制 + SDK 库,由客户自行集成
适用场景(满足任一项):
操作系统是深度定制的嵌入式 Linux / 厂商私有发行版(如某些 IPC、网关、车机、专用工控机),init 不是 systemd / procd / rc.local,或 root 文件系统是只读 squashfs / overlay 限制写入。
/usr/local、/var/log、/lib 等标准目录不可写或位于 tmpfs(重启丢失),需要把文件放到客户指定的持久化分区。
客户已有自己的进程管理框架(自研 supervisor、busybox init、容器 entrypoint、宿主 App 拉起等),不允许我们注册 systemd / procd 服务。
客户对 sysctl / iptables / ip rule 有严格的统一管理策略,要求由客户自己合并配置,不允许安装脚本直接写入。
客户需要把 SDK 作为子模块嵌入到自己的应用包中一起发布(例如打入自家 IPK / DEB / RPM / 镜像层)。
容器化场景下客户希望自行构建镜像,仅需要二进制和默认配置文件,不需要部署脚本。
cd deploysudo ./deploy.sh
若拷贝路径包含只读系统,脚本拷贝文件失败,则需要用户手动拷贝文件至对应目录,文件拷贝路径参考:
3. 关键安装目录定义
MPBINDIR=/usr/local/bin/mp-speeder # 二进制文件目录MPCONFDIR=/usr/local/etc/mp-speeder # 配置文件目录MPDATADIR=/usr/local/etc/mp-speeder/data # 数据文件目录
完整文件路径映射表
3.1 二进制可执行文件路径映射表
源文件路径 | 目标安装路径 | 说明 |
bin/linux-sdk-$ETARGET | /usr/local/bin/mp-speeder/mp-sdk | 主 SDK 程序(根据架构选择) |
bin/linux-sdk-cli-$ETARGET | /usr/local/bin/mp-speeder/mp-cli | CLI 命令行工具 |
bin/wireguard-go-$ETARGET | /usr/local/bin/mp-speeder/wireguard-go | WireGuard 守护进程 |
bin/wg-$ETARGET | /usr/local/bin/mp-speeder/wg | WireGuard 管理工具 |
bin/wg-quick | /usr/local/bin/mp-speeder/wg-quick | WireGuard 快速配置脚本 |
bin/multipath-tun-client-$ETARGET | /usr/local/bin/mp-speeder/mp-speeder | 多路径加速客户端 |
bin/udping-$ETARGET | /usr/local/bin/mp-speeder/udping | UDP 延迟测试工具 |
bin/tcping-$ETARGET | /usr/local/bin/mp-speeder/tcping | TCP 延迟测试工具 |
deploy/mp_check.sh | /usr/local/bin/mp-speeder/mp_check.sh | 环境检查脚本 |
bin/web/* | /usr/local/bin/mp-speeder/web/* | Web 管理界面(整个目录) |
注意:
$ETARGET 根据系统架构动态选择:
linux-amd64 (x86_64)
linux-aarch64 (ARM64)
linux-armv7l (ARMv7)
3.2 系统库文件路径映射表
源文件路径 | 目标安装路径 | 条件 |
bin/ld-musl-aarch64.so.1 | /lib/ld-musl-aarch64.so.1 | ARM64架构且文件不存在时 |
bin/ld-musl-armhf.so.1 | /lib/ld-musl-armhf.so.1 | ARMv7架构且文件不存在时 |
3.3 配置文件路径映射表
源文件路径 | 目标安装路径 |
deploy/config/sdk_config.json | /usr/local/etc/mp-speeder/sdk_config.json |
deploy/config/log_config.json | /usr/local/etc/mp-speeder/log_config.json |
deploy/config/mp_client_extend.conf | /usr/local/etc/mp-speeder/mp_client_extend.conf |
deploy/config/config.json | /usr/local/etc/mp-speeder/config.json |
deploy/config/quic_client.json | /usr/local/etc/mp-speeder/quic_client.json |
deploy/config/mp_route.json | /usr/local/etc/mp-speeder/mp_route.json |
deploy/config/sysctl.conf | /usr/local/etc/mp-speeder/sysctl.conf |
metricConfig.json | /usr/local/etc/mp-speeder/metric.json |
3.4 数据文件路径映射表
源文件路径 | 目标安装路径 |
deploy/data/biz_route.json | /usr/local/etc/mp-speeder/data/biz_route.json |
deploy/data/mp_policy_route.conf | /usr/local/etc/mp-speeder/data/mp_policy_route.conf |
运行时数据文件(脚本会迁移的已有文件):
/usr/local/etc/mp-speeder/data/mp_client.json - 客户端配置/usr/local/etc/mp-speeder/data/mp_client_uuid.conf - 客户端 UUID/usr/local/etc/mp-speeder/data/speed_mode_rules.json - 加速规则
3.5 服务管理文件路径映射表
OpenWrt/ProCD 系统路径映射表
源文件路径 | 目标安装路径 |
deploy/mp-sdk-procd | /etc/init.d/mp-sdk |
Systemd 系统路径映射表
源文件路径 | 目标安装路径 |
deploy/mp-sdk.service | /usr/local/etc/mp-speeder/mp-sdk.service |
上述表格带来的额外操作:会执行
systemctl link /usr/local/etc/mp-speeder/mp-sdk.serviceRC.Local 系统路径映射表
源文件路径 | 目标安装路径 |
deploy/mp-sdk-shell | /usr/local/bin/mp-speeder/mp_sdk.sh |
deploy/mp-guard-shell | /usr/local/bin/mp-speeder/mp_guard.sh |
上述表格带来的额外操作:会在 /etc/rc.d/rc.local 中添加启动项:
/usr/local/bin/mp-speeder/mp_guard.sh &4. 附件
4.1 SDK 安装目录结构
/usr/local/├── bin/│ └── mp-speeder/ # 所有二进制文件和 Web 界面│ ├── mp-sdk│ ├── mp-cli│ ├── mp-speeder│ ├── wireguard-go│ ├── wg│ ├── wg-quick│ ├── udping│ ├── tcping│ ├── mp_check.sh│ ├── mp_sdk.sh (rc.local 系统)│ ├── mp_guard.sh (rc.local 系统)│ └── web/└── etc/└── mp-speeder/ # 配置文件├── sdk_config.json├── log_config.json├── mp_client_extend.conf├── config.json├── quic_client.json├── mp_route.json├── sysctl.conf├── metric.json├── mp-sdk.service (systemd 系统)└── data/ # 运行时数据├── biz_route.json├── mp_client.json├── mp_policy_route.conf├── mp_client_uuid.conf└── speed_mode_rules.json/etc/├── init.d/│ └── mp-sdk (procd 系统)└── rc.d/└── rc.local (rc.local 系统,添加启动项)/lib/ (ARM 架构条件复制)├── ld-musl-aarch64.so.1└── ld-musl-armhf.so.1
4.2 常见集成问题
Q1:
ip_tables 、iptable_filter 、iptable_mangle 、tun 这几个 kernel 模块是否必须 modules 的形式,能否用 built-in 的形式?A1:两种实现方式都可以。
Q2:
ld-musl-aarch64.so.1这个库拷贝到/lib 失败了,能否换到别的目录,比如换到/user/local/lib?A2:可以,确保程序启动的环境变量能够自动加载
/user/local/lib 下的库即可。Q3:集成文档里,全量引流必须要带有 LAN,车端一般不会带 lan 前缀,是否能指定 lan 中的几个口?
A3:全量引流如果没有 LAN,则会回退到找第一个
bridge 口,但是也更推荐使用特定引流实现规则来精确控制:通过 srcIP 指定下挂设备的 IP 网段,可以精确覆盖特定接口下的流量,效果等同于"指定某几个口的全量流量"。Q4:集成完成后,查询加速状态(
/api/v2/client/mp-speeder)时发现进程状态还是未启动(ready == false)怎么解决?A4:先通过
curl https://www.baidu.com,检查本地证书是否加载异常导致 TLS 握手失败,再检查设备本地时间是否有明显异常,最后检查设备/usr/local/etc/mp-speeder 路径是否有写权限,下发 sdk 配置时涉及配置文件生成。