tencent cloud

腾讯云聚通 Linux SDK 对硬件的适配要求

下载
聚焦模式
字号
最后更新时间: 2026-06-15 15:49:00

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 / 镜像层)。
容器化场景下客户希望自行构建镜像,仅需要二进制和默认配置文件,不需要部署脚本。
单独二进制包 也提供 deploy.sh 脚本 方便用户拷贝文件至对应目录:
cd deploy
sudo ./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.service
RC.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 配置时涉及配置文件生成。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈