ShieldGuard

ShieldGuard

APP的DDoS防护方案

轻松保护您的App服务器,为您的业务保驾护航

全程加密

全程加密通信托管你的流量

无视攻击

无限防御,零误封,不论多大攻击,不管多少肉鸡

接入简单

支持Windows/Android/iOS,仅需几行代码即可轻松接入

永不掉线

节点之间数据实时同步,切换无感知,确保零掉线

前置准备

在开始接入前:请先登录管理后台,创建应用并获取专属 AppID 和 AppKey 加入共同防御计划

集成方式

  • 提供零代码、原生代码两种集成方式,同时支持 iOS、Android 双端原生
  • 并提供 Unity / Cocos / Flutter / React Native 等主流跨平台框架封装包

下载SDK文件

多平台客户端接入指南

Windows SDK 文件说明

Windows SDK 包含 Shield.exe + Shield.dll,DLL 导出 Init 函数,遵循 C __cdecl 调用约定,提供两种接入方式。

方式 1:零代码接入(新手推荐)

新建配置文件 Shield.ini,与 exe、dll 同目录,填写以下配置:

[Shield]
AppID = DEVELOPEMENT_APP_ID
; 替换为后台获取的 AppID
AppExe = APP_EXE_PATH
; 填写业务程序绝对 / 相对路径

直接运行 Shield.exe 即可完成防护代理启动。

注意:零代码模式仅适合简单桌面程序;如需控制初始化时机、捕获初始化结果,建议使用动态库编码接入。

方式 2:C/C++ 动态库接入

建议独立进程加载 DLL,直接注入业务进程可能引发崩溃、网络连接异常。

/* 声明 SDK 初始化函数 */
extern "C" {
typedef int (*InitFunc)(char *, char *);
}

// 加载动态库
HMODULE hMod = LoadLibrary("Shield.dll");
if (!hMod) return; // 未找到 DLL 文件

InitFunc init = (InitFunc)GetProcAddress(hMod, "Init");
if (!init) return; // 未导出 Init 函数

// 传入 AppID 完成初始化
int ret = init(NULL, "DEVELOPEMENT_APP_ID");
if (ret != 0) {
    // 初始化失败,参考错误码表排查
    return;
}
// ret = 0 初始化成功

Android AAR 集成步骤

  1. libshield.aar 放入项目 app/libs 目录
  2. 修改 App 级 build.gradle
android {
    sourceSets.main {
        jniLibs.srcDirs = ['libs']
    }
}
dependencies {
    implementation files('libs/libshield.aar')
}

在 Application 或首个 Activity 初始化 SDK:

// 替换为你的 AppID
int iRet = Shield.Init(null, "DEVELOPEMENT_APP_ID");
// iRet == 0 代表初始化成功

iOS / iPadOS 静态库接入

SDK 包含:头文件 Shield.h、静态库 libshield.a

#import "Shield.h"

// 获取单例并初始化
Shield *s = [Shield getInstance];
NSInteger iRet = [s Init:nil key:@"DEVELOPEMENT_APP_ID"];
// iRet == 0 初始化成功

初始化返回错误码对照表

返回值 异常说明
0初始化成功
1AppID 为空,请检查传入参数
3无法拉取云端配置 / 未配置转发规则
4本地端口监听失败,端口冲突占用
9第一个参数不为空指针,参数格式错误

获取客户端真实 IP

接入 SDK 后,服务端回源默认仅获取代理虚拟 IP。如需真实客户端 IP,需安装配套服务端插件:

  • Windows 服务端:安装插件后重启业务服务生效
  • Linux 服务端:编译安装插件,即时生效无需重启

SDK 接入后业务改造要点

  1. 登录管理后台,按业务需求配置流量转发规则
  2. 修改客户端网络逻辑,断开原有直连 TCP 服务器逻辑
  3. 客户端统一连接本地回环代理地址:
    • Android / iOS:固定 127.0.0.1
    • Windows PC:回环 IP 以管理后台配置为准
接入异常排查:
请把 SDK 的 SDK 接入到客户端 App,而不是服务端 App
因部分操作系统的限制,SDK不支持转发到 1024(即 0-1023)以下的端口
因部分操作系统的限制,移动端的本地回环地址只能是 127.0.0.1
当多个不同PC 端 App都在使用 SDK 时,不同的本地回环地址可以避免冲突
如果 PC 端 需要运行同一个 App的多个进程,请用单独的进程初始化 SDK
如果 PC 端 App 初始化 SDK SDK 后出现崩溃,请用单独的进程初始化 SDK