部署教程
架构
WebTDS 系统由三个子系统组成:
- WebTDS 控制台
- WebTDS 节点
- WebTDS 日志系统

部署
环境要求
- 服务器系统: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_HOST | MySQL 地址 | 172.20.0.2(内置 MySQL) |
| MYSQL_PORT | MySQL 端口 | 3306 |
| MYSQL_DATABASE | 数据库名 | wtds_admin |
| MYSQL_USER | 数据库用户名 | root |
| MYSQL_PASSWORD | 数据库密码 | 需修改为自定义密码 |
| AUTH_CODE | 授权码 | 已内置 |
| OPEN_REGIST | 是否开放注册 | false |
| ADMIN_API_ENABLE | 是否开启 Admin API | true |
| ADMIN_API_WHITELIST | Admin 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 |
| 日志服务器端口 | 日志服务监听端口,默认 8866 | 8866 |
在控制台 系统管理 → 日志查询配置 中开启日志查询,选择 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
