Skip to content

宝塔 WAF 同步 CDN 节点 IP ​

如果宝塔 Nginx 防火墙只允许固定来源 IP,CDN 节点变化后可能出现 502、504 或间歇性无法访问。源站应定期同步平台公布的回源网段,而不是只把当前看到的一个节点 IP 写死。

推荐做法 ​

  1. 在昆腾 CDN 控制台或平台支持渠道获取最新的 CDN 回源 IP/网段列表。
  2. 先备份宝塔 WAF 的白名单文件和现有自定义 IP。
  3. 用计划任务定期拉取列表,校验内容后再替换白名单。
  4. 重载 WAF/Nginx,并从 CDN 访问真实域名验证。

示例脚本只表达流程,接口地址和文件路径请以你当前宝塔版本及平台提供的地址为准:

bash
#!/usr/bin/env bash
set -euo pipefail

tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT

# 将 PLATFORM_NODE_LIST_URL 替换为平台提供的节点列表地址
curl --fail --silent --show-error --connect-timeout 10 \
  "$PLATFORM_NODE_LIST_URL" -o "$tmp"

# 根据当前宝塔版本校验 JSON 格式,再原子替换白名单文件
python3 -m json.tool "$tmp" >/dev/null
install -m 0644 "$tmp" /path/to/btwaf/ip_white.json

注意事项 ​

  • 全量覆盖前必须保留原有自定义白名单,否则会误删办公出口和监控 IP。
  • 不要把整个公网段加入白名单,只允许平台公布的回源网段。
  • 免费版宝塔可能没有 Nginx 防火墙;没有对应目录时不要照抄路径。
  • 白名单同步成功后仍返回 50x,继续检查源站端口、回源协议和站点绑定。

相关排查:宝塔与 Nginx 源站接入 · 常见问题排查。

基于 VitePress 构建