JXWAFJXWAF
首页
JXWAF标准版
JXWAF专业版
JXWAF云WAF
WebTDS
GitHub
首页
JXWAF标准版
JXWAF专业版
JXWAF云WAF
WebTDS
GitHub
  • WebTDS文档

    • 产品介绍
    • 部署教程
    • 操作指南
    • API调用
    • 策略仓库

部署教程

架构

WebTDS 系统由三个子系统组成:

  • WebTDS 控制台
  • WebTDS 节点
  • WebTDS 日志系统

webtds_architecture

部署

环境要求

  • 服务器系统:Debian 12.x
  • 服务器最低配置:4 核 8G
  • Docker 和 Docker Compose

Docker 安装命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

WebTDS 控制台部署

# 1. 克隆 JXWAF 仓库(WebTDS 部署文件位于 WebTDS 目录下)
git clone https://github.com/jx-sec/jxwaf.git
# 也可通过 wget 下载源码包:wget https://github.com/jx-sec/jxwaf/archive/refs/heads/master.zip

# 2. 进入控制台部署目录
cd jxwaf/WebTDS/webtds_server/

# 3. 修改配置
vim docker-compose.yml

修改 docker-compose.yml 中的配置项:

环境变量说明默认值
MYSQL_HOSTMySQL 地址172.20.0.2(内置 MySQL)
MYSQL_PORTMySQL 端口3306
MYSQL_DATABASE数据库名wtds_admin
MYSQL_USER数据库用户名root
MYSQL_PASSWORD数据库密码需修改为自定义密码
AUTH_CODE授权码已内置
OPEN_REGIST是否开放注册false
ADMIN_API_ENABLE是否开启 Admin APItrue
ADMIN_API_WHITELISTAdmin API IP/域名白名单(逗号分隔)空(不限制)
WTDS_UPDATE_CONF_DATA配置更新内存分配100m
TZ时区Asia/Shanghai

注意:控制台内置 MySQL 数据库,无需单独部署 MySQL。首次部署时建议将 OPEN_REGIST 设为 "true",完成管理员账号注册后改回 "false"。

控制台默认映射 80(HTTP)和 443(HTTPS)端口。如需启用 HTTPS,将 SSL 证书放置到 ssl_certs/ 目录下:

  • ssl_certs/server.crt – SSL 证书文件
  • ssl_certs/server.key – SSL 私钥文件

启动控制台:

docker compose up -d

部署完成后访问服务器地址(http://<公网IP>)即可进行账号注册。

账号需要使用动态口令进行二次验证。注册页面会显示一个二维码,请在微信中使用小程序 腾讯身份验证器 扫描该二维码绑定账号,然后输入获取到的 6 位动态口令完成注册。

控制台默认支持单用户注册,完成注册后注册入口自动关闭。

完成注册并登录控制台后,点击 系统管理 → 基础信息 页面,复制 wtds_auth 的值,后续节点配置需要使用该认证密钥。

WebTDS 节点部署

# 1. 进入节点部署目录(在已克隆的 jxwaf 仓库中)
cd jxwaf/WebTDS/webtds_node/

# 2. 修改配置
vim docker-compose.yml

修改文件中的 WTDS_SERVER 和 WTDS_AUTH:

  • WTDS_SERVER:修改为您部署的控制台地址(如 http://47.120.63.196)
  • WTDS_AUTH:填写从控制台 系统管理 → 基础信息 中复制的 wtds_auth 认证密钥

启动节点:

docker compose up -d

启动后,登录控制台,进入 运营中心 → 节点状态 页面,若节点列表中显示该节点且健康状态为"正常",则表示节点已成功上线。

节点升级

# 1. 进入节点部署目录
cd jxwaf/WebTDS/webtds_node/
# 2. 更新代码
git pull
# 3. 重启服务(镜像或配置未更新则保持原状)
docker compose up -d

节点卸载

# 1. 进入节点部署目录
cd jxwaf/WebTDS/webtds_node/
# 2. 停止并删除容器
docker compose down

Docker Compose 文件说明

services:
  # Web 威胁检测服务 (WebTDS)
  wtds:
    image: "ccr.ccs.tencentyun.com/jxwaf/wtds_authorizatio:2.1"
    container_name: wtds
    # 使用主机网络模式(直接使用宿主机网络,绕过 Docker 的网络隔离)
    network_mode: host
    # 设置文件描述符限制(用于处理高并发连接)
    ulimits:
      nofile:
        soft: 602400  # 软限制
        hard: 602400  # 硬限制
    environment:
      WTDS_SERVER: you_wtds_server       # WebTDS 控制台地址(修改为您部署的控制台地址)
      WTDS_AUTH: you_auth_key            # WebTDS 认证密钥
      CONF_DATA: 100m                    # 配置数据内存分配
      INNER_DICT: 100m                   # 内部字典内存分配
      GLOBAL_DICT: 100m                  # 全局字典内存分配
      USER_DATA: 100m                    # 用户数据内存分配
      SUPPRESS: 100m                     # 抑制规则内存分配
      #EXTRA_SHARED_DICTS: "node_data:100m"  # 额外共享字典配置(按需启用)
      TZ: Asia/Shanghai                  # 时区设置为上海(北京时间)
    restart: unless-stopped

  # TCP 端口转发服务
  tcp-forwarder:
    image: ccr.ccs.tencentyun.com/jxwaf/tcp-forwarder:v1
    container_name: tcp-forwarder
    environment:
      LISTEN_ADDR: 0.0.0.0:9988          # 监听地址(所有网卡的 9988 端口)
      TARGET_ADDR: 127.0.0.1:9977        # 目标地址(转发到本地的 9977 端口)
    network_mode: host
    restart: unless-stopped

WebTDS 日志服务部署

日志服务后端为 ClickHouse。

ClickHouse 方式部署

# 1. 进入日志服务部署目录(在已克隆的 jxwaf 仓库中)
cd jxwaf/WebTDS/webtds_jxlog/
# 2. 启动容器
docker compose up -d

部署完成后,在控制台中 系统管理 → 日志传输配置 完成如下配置:

配置项说明示例值
本地调试记录临时调试时开启,仅记录本地日志关闭
远程日志记录开启后将日志发送到远程日志服务器(syslog 格式)开启
日志服务器地址部署日志服务的服务器公网 IP 地址47.115.222.190
日志服务器端口日志服务监听端口,默认 88668866

在控制台 系统管理 → 日志查询配置 中开启日志查询,选择 ClickHouse 并完成如下配置(ClickHouse 数据库的帐号密码可以在 docker-compose.yml 文件中修改):

配置项说明默认值
日志查询配置开启后可在控制台查询日志开启
ClickHouse 服务器地址ClickHouse 数据库的 IP 地址日志服务器公网 IP
ClickHouse 服务器端口ClickHouse MySQL 兼容协议端口9004
用户名ClickHouse 数据库用户名jxlog
密码ClickHouse 数据库密码jxlog
数据库名称ClickHouse 数据库名wtds
Docker Compose 文件说明(ClickHouse)
networks:
  clickhouse_network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.60.0.0/24

services:
  # ClickHouse 数据库服务
  clickhouse:
    image: "ccr.ccs.tencentyun.com/jxwaf/clickhouse-server:22.8.5-alpine"
    ports:
      - "9000:9000"     # ClickHouse 原生 TCP 协议端口
      - "9004:9004"     # ClickHouse MySQL 兼容协议端口
    environment:
      CLICKHOUSE_DB: wtds
      CLICKHOUSE_USER: jxlog
      CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
      CLICKHOUSE_PASSWORD: jxlog
      TZ: Asia/Shanghai
    volumes:
      - /opt/wtds_data/clickhouse:/var/lib/clickhouse
    restart: unless-stopped
    networks:
      clickhouse_network:
        ipv4_address: 172.60.0.10

  # JXLog 日志收集服务
  jxlog:
    container_name: jxlog
    image: "ccr.ccs.tencentyun.com/jxwaf/wtds_log:2.0"
    ports:
      - "8866:8866"
    environment:
      CLICKHOUSE: 172.60.0.10:9000     # 连接的 ClickHouse 地址
      DATABASE: wtds
      USERNAME: jxlog
      PASSWORD: jxlog
      TABLE: wtds_log
      TCPSERVER: 0.0.0.0
      TZ: Asia/Shanghai
    depends_on:
      - clickhouse
    restart: unless-stopped
    networks:
      clickhouse_network:
        ipv4_address: 172.60.0.11

日志服务升级(ClickHouse 方式)

# 1. 进入日志服务部署目录
cd jxwaf/WebTDS/webtds_jxlog/
# 2. 更新代码
git pull
# 3. 重启日志服务
docker compose up -d

日志服务卸载(ClickHouse 方式)

# 1. 进入日志部署目录
cd jxwaf/WebTDS/webtds_jxlog/
# 2. 停止并删除容器
docker compose down
# 3. 删除数据库文件(可选)
rm -rf /opt/wtds_data/clickhouse
最近更新:: 2025/4/4 21:22
Contributors: chenjc, jiongrizi, root
Prev
产品介绍
Next
操作指南