tencent cloud

边缘安全加速平台 EO

全路径安全加速

Download
聚焦模式
字号
最后更新时间: 2026-07-14 14:33:08

产品概述

全路径安全加速是多网聚合加速(腾讯云聚通)基于边缘安全加速平台 EO(Tencent Cloud EdgeOne)面向实时互动、对战类游戏、金融交易、视频会议等对网络质量敏感的业务场景,推出的端到端加速与安全防护一体化解决方案。方案以客户端 SDK 为入口,依托腾讯云全球 3200+ 边缘节点和自建骨干网,对从用户终端到客户源站的全链路(移动接入段、骨干传输段、回源段)进行多通道择优加速与冗余容灾,并在边缘侧叠加 Anti-DDoS、源站隐藏、流量签名等安全能力,实现让弱网更稳、让攻击更难的双重价值。
方案以无侵入方式接入业务 APP,原有业务代码无需改造;可灵活搭配 EdgeOne 四层代理、客户私有化网关使用,适配公有云、混合云、多云等多种部署形态。

面向的典型业务痛点

1. 移动接入网络高度不稳定。
2. 全球骨干网拓扑复杂、运营商质量参差不齐。
3. 源站 IP 暴露与 DDoS 防护成本失控。

方案总体架构




方案在终端 SDK、骨干传输、回源接入三段同时构建多条冗余通道,对应将网络划分为 T1(接入段)、T2(骨干网段)、T3(回源段)三段,每一段均提供多路择优 + 冗余容灾能力。
分段
覆盖路径
核心技术手段
解决问题
T1 接入段
终端 ↔ 边缘接入节点
Wi-Fi/蜂窝多发择优 +公网隧道穿透
弱网抖动、Wi-Fi/蜂窝切换、最后一公里丢包
T2 骨干网段
边缘接入节点 ↔ 源站地域边缘节点
EdgeOne 四层加速 + 三方专线 + 公网线路智能调度
跨境跨运营商高延迟、互联点拥塞、单线路抖动
T3 回源段
源站地域边缘节点 ↔ 客户源站
加速网关就近回源(云内网/同机房)
回源距离、跨云跨地域时延
说明:
在 T1+T2+T3 三段之上,方案叠加全路径容灾:任一段出现质量劣化时,毫秒级自动切换至备用通道,对应用透明,玩家与终端用户零感知。

核心能力

1. 全路径加速能力
接入段(T1):Wi-Fi/蜂窝双发+公网隧道穿透(例如俄罗斯)。
骨干网段(T2):EdgeOne 四层代理加速能力。
回源段(T3):加速网关就近回源。
全路径容灾:T1×T2×T3 多段冗余组合,最多可形成数十条端到端备选路径,单段故障不影响整体连通。
灵活启动策略:支持「全程加速」与「按需加速」两种模式,按需模式下 SDK 持续监测网络质量,弱网触发、网络恢复自动关闭,兼顾效果与流量成本。
2. 一体化安全防护能力
边缘 Anti-DDoS:依托 EdgeOne 边缘节点天然分布式架构,在距离攻击源最近的位置完成清洗,避免攻击流量挤占骨干网与源站带宽。
源站 IP 收拢:将海量动态扩缩的业务源站 IP 收拢为少量固定的网关 IP,统一配置高防策略,大幅降低防护规则配置复杂度与高防成本。

源站隐藏

域名访问的情况
全路径安全加速采用正向代理的方式,直接访问源站域名。建议本方案使用 fake 域名。否则攻击者可能通过反编译、hook 等方式获取战斗服域名,造成安全风险。全路径安全加速方案提供 fake 域名方案,使得客户端完全不暴露源站的域名。其核心是在客户端对 fake 域名访问,在安全加速网关处进行对真实 IP 地址回源。



注意:
本方案目前仅支持离线配置,如有需要请 联系我们,产品化方案后续上线。
1. 离线配置域名映射关系(例如 fake.com--->1.2.3.4 )。
2. 客户控制器给应用 APP 下发对战服 fake 域名 fake.com。
3. 应用 APP 启动加速,向 fake 域名 fake.com 发起连接。
4. 安全加速网关访问真实的业务 IP 地址1.2.3.4。
IP 访问的情况
全路径安全加速采用正向代理的方式,直接访问源站真实 IP 地址。建议在客户端对源站真实 IP 地址进行混淆,否则攻击者可能通过反编译、hook 等方式获取战斗服 IP 地址,造成安全风险。同时,全路径安全加速方案提供源站 IP 加密方案,使得客户端完全不暴露源站的真实 IP 地址。其核心是在客户端对真实的源站 IP 地址进行加密,在安全加速网关处进行 IP 地址解密回源。



1. 获取加密密钥。加密密钥与接入密钥相同,详情请参见 设置接入密钥
2. 客户控制器(指管控面)向客户端下发 IP 地址时,使用密钥进行加密。
加密方法为使用 chacha20 加密,示例代码如下:
package main

import (
"crypto/hmac"
"crypto/sha256"
"errors"
"fmt"
"golang.org/x/crypto/chacha20"
"net"
)

// 派生128bit密钥+64bit nonce
func deriveParams(psk []byte, ip net.IP) (key []byte, nonce []byte) {
mac := hmac.New(sha256.New, psk)
mac.Write(ip)
derived := mac.Sum(nil)
return derived[:16], derived[16:24] // key=128bit, nonce=64bit
}

// IPv4加密 (32bit→32bit)
func EncryptIPv4(ip net.IP, psk []byte) ([]byte, error) {
if len(ip) != net.IPv4len {
return nil, errors.New("invalid IPv4 length")
}

key, nonce := deriveParams(psk, ip)
cipher, _ := chacha20.NewUnauthenticatedCipher(key, nonce)
// 原地加密(32bit精确输出)
ciphertext := make([]byte, net.IPv4len)
cipher.XORKeyStream(ciphertext, ip.To4())
return ciphertext, nil
}

// IPv6加密 (128bit→128bit)
func EncryptIPv6(ip net.IP, psk []byte) ([]byte, error) {
if len(ip) != net.IPv6len {
return nil, errors.New("invalid IPv6 length")
}

key, nonce := deriveParams(psk, ip)
cipher, _ := chacha20.NewUnauthenticatedCipher(key, nonce)
// 128bit精确输出
ciphertext := make([]byte, net.IPv6len)
cipher.XORKeyStream(ciphertext, ip.To16())
return ciphertext, nil
}

// 解密函数(加密/解密使用相同函数)
var DecryptIPv4 = EncryptIPv4
var DecryptIPv6 = EncryptIPv6

func main() {
psk := []byte("test-datakey")

// IPv4测试
ipv4 := net.IPv4(192, 168, 1, 1)
encV4, _ := EncryptIPv4(ipv4, psk)
decV4, _ := DecryptIPv4(encV4, psk)
fmt.Printf("IPv4:\\n 原IP: %v\\n 密文: %08x\\n 解密: %v\\n",
ipv4, encV4, decV4)

// IPv6测试
ipv6 := net.ParseIP("2001:db8::a1b2")
encV6, _ := EncryptIPv6(ipv6, psk)
decV6, _ := DecryptIPv6(encV6, psk)
fmt.Printf("\\nIPv6:\\n 原IP: %v\\n 密文: %032x\\n 解密: %v\\n",
ipv6, encV6, decV6)
}
3. 手机应用开启加速代理,开启 IP 加密能力(接口),并对加密的 IP 地址进行访问。加速网关会将加密的 IP 地址解密,并正确回源。

接入流程

全路径安全加速方案整体属于腾讯云边缘安全加速平台 EO 下,搭配 EdgeOne 四层代理使用。因此需要客户前置 开通 EdgeOne 站点加速服务四层代理。本文仅介绍全路径安全加速方案相关接入说明。

全路径安全加速网关配置

1. 使用腾讯云账号登录 EdgeOne 控制台,在控制台创建/选择站点。



2. 在左侧四层代理,选择全路径安全加速。进入加速网关列表页面,单击新建加速网关



3. 在源站所在地域创建加速网关。填写名称、地域、接入端口。配置 SDK 到网关的线路。至少包括直连线路和 EdgeOne 四层代理线路。EdgeOne 四层代理的转发规则可以暂不配置。单击创建






4. 创建加速网关成功。可见网关 ID 和接入 IP/端口。






5. 将接入 IP 提供至腾讯侧接口工程师,对接入点开启按 QUIC ID 调度配置。(因 API 限制,目前需手动执行,后续将调整为自动修改)。

配置四层代理和网关的关系

1. 创建四层代理的转发规则,将转发规则的源站指向网关的 IP 地址和端口。



2. 配置加速网关的线路。EdgeOne 四层代理实例线路规则选定刚刚创建的规则 ID。




设置接入密钥

1. 单击接入密钥管理。可以点击刷新,由系统创建接入密钥,或者自定义密钥。






完成以上步骤,在客户端 SDK/DemoApp 中配置站点 ID、网关 ID、接入密钥、即可在 SDK 侧启动加速。

Demo App

您可以通过 Demo App 快速体验产品服务,请下载最新版本安装包,具体参见 Demo App 下载指引
测试步骤如下:
1. 右上角选择语言,可选中文/英文。在基础功能中选择 EdgeOne 全路径安全加速体验。



2. 再次点击右上角进入设置。



3. 进行加速设置。
环境选择
测试阶段,建议选择发布环境,方便研发团队定位问题、技术联调。
上线验证阶段,建议使用正式环境,您可以在控制台创建网关,验证现网服务效果。
加速参数
Application Key:填写您在控制台上创建的接入密钥。



Zone ID:填写您的 EdgeOne 站点 ID。



Gateway ID:填写您在控制台上创建的网关 ID



加速模式
选择实时模式
加速应用
一般可以选择所有应用。即为对手机所有流量加速。亦可选择列表中感兴趣的指定应用进行加速。
日志等级
请选择 Info 等级
多网卡
打开开关后,会使用您手机上的 Wi-Fi/蜂窝网卡竞速。反之不会。
存储日志
如果勾选存储日志选项,则开启加速后。会存储加速日志在目录:
Android/data/com.android.tencentvpn/files/Documents
亦可通过 andriod adb 工具获取 PING 日志,命令:
adb logcat -b all | grep PING > $(date +\\%m\\%d-\\%H:\\%M:\\%S).log



4. 以上配置完成后,单击确认,返回加速页面。
5. 点击开始加速,同意 VPN 权限。会出现 VPN 图标(不同手机厂商不同)。



6. 单击停止加速,VPN 图标消失即加速停止。

SDK 接入

下载及不同操作系统 SDK 接入信息请联系 腾讯云聚通客服

生成按应用创建的设备 Sign 签名方法参考

按应用创建的设备 Sign 签名的生成需要两个参数:客户自定义业务控制设备唯一标识即 deviceName;上图中创建成功后返回的应用密钥。利用两个参数启动脚本,完成按应用创建的设备 Sign 签名生成。
Java 语言
package com.android.tencentvpn.util;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.security.Key;
import java.util.Date;
import javax.crypto.spec.SecretKeySpec;

public class SignGenerate {
private static final long EXPIRE_TIME = 72 * 60 * 60 * 1000; // 过期时间, 单位毫秒
/**
* @param deviceName 业务自己控制设备唯一标识
* @param SecretKey 云api返回的 应用密钥
* @return 多网sdk 需要传入的签名字符串 最终通过setSign 调用
*
*/
public static String generateSign(String deviceName, String SecretKey) {
try {
Date now = new Date();
Date expireDate = new Date(now.getTime() + EXPIRE_TIME);
Key key =
new SecretKeySpec(SecretKey.getBytes(), SignatureAlgorithm.HS256.getJcaName());
return Jwts.builder()
.claim("deviceName", deviceName)
.expiration(expireDate)
.signWith(key)
.compact();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
Objective-C 语言
//podfile中添加pod 'JWT',集成JWT库
// .h文件:
@interface SignGenerator : NSObject
/**
* @deviceName 业务自己控制设备唯一标识
* @param SecretKey 云api返回的 应用密钥
* @return 多网sdk 需要传入的签名字符串 最终通过setSign 调用
*/
+ (NSString *)generateSignWithDeviceName:(NSString *)deviceName secretKey:(NSString *)secretKey;
@end
// .m文件
#import "SignGenerator.h"
#import <JWT/JWT.h>
@implementation SignGenerator
+ (NSString *)generateSignWithDeviceName:(NSString *)deviceName secretKey:(NSString *)secretKey {
// 1. 设置过期时间(72小时后)
NSDate *currentDate = [NSDate date];
NSDate *expireDate = [currentDate dateByAddingTimeInterval:72 * 60 * 60];
// 2. 构建 Claims(负载)
NSDictionary *claims = @{
@"deviceName": deviceName,
@"exp": @((long)[expireDate timeIntervalSince1970]) // Expiration
};
NSData *keyData = [secretKey dataUsingEncoding:NSUTF8StringEncoding];
// 3. 使用 HS256 算法和密钥签名
JWTBuilder *builder = [JWTBuilder encodePayload:claims]
.secretData(keyData)
.algorithmName(@"HS256"); //算法名
NSString *jwt = builder.encode;
// 4. 错误处理
if (builder.jwtError) {
NSLog(@"JWT 生成失败: %@", builder.jwtError);
return @"";
}
return jwt;
}
Go 语言
package main
import (
"fmt"
"github.com/dgrijalva/jwt-go/v4"
"time"
)
func main() {
sign, expireTime, err := GenerateSign("tencent-test")
if err != nil {
panic(err)
}
println(sign, expireTime)
}
// SignClaims JwtCustomClaims
type SignClaims struct {
jwt.StandardClaims
DeviceName string `json:"deviceName"`
}
var (
ExpireTime = 72 // 过期时间, 单位小时
SecretKey = []byte("your secretkey") // APP密钥
)
// GenerateSign 生成签名
func GenerateSign(deviceName string) (string, int64, error) {
expireTime := time.Now().Add(time.Duration(ExpireTime) * time.Hour)
claims := &SignClaims{
StandardClaims: jwt.StandardClaims{
NotBefore: jwt.Now(),
ExpiresAt: jwt.At(expireTime),
},
DeviceName: deviceName,
}
println(fmt.Sprintf("%#v", claims))
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
sign, err := token.SignedString(SecretKey)
if err != nil {
return "", 0, err
}
return sign, expireTime.Unix(), nil
}

设置应用签名鉴权

调用接口 setSign,传入创建应用时记录的 appId 即应用 ID 和 sign 即签名字符串,完成按应用创建的设备,设置应用签名鉴权。

API 接口说明

控制台请求,全部对应 云 API 接口
注意:
控制台功能和 API 文档是对应的。可以以控制台接入为锚点参考 API 文档,如果有对应不清的情况,可以打开浏览器的开发者模式,根据接口名找到应用接口。

帮助和支持

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

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

文档反馈