一、引言:为什么用户走 CDN 正常,海外节点 TCPing 源站 443 却显示 Port is open?
在 CDN/高防架构里,标准姿势是:用户 → 高防 Anycast IP / CDN 边缘 → 回源到源站私有 IP 或做了安全组限制的源站公网 IP。运维常在云控制台看到"安全组仅放行 CDN 回源段",便认为"源站 443 不可能被直连"。但用 www.kkce.com 的"在线TCPing" 从全球 3000+ 节点对源站公网 IP:443 发起握手,却发现:北京电信节点Port is open, time=18ms,法兰克福海外节点也Port is open, time=52ms,而"在线Ping" 同目标 100% 丢包(ICMP 禁了)。这种"CDN 前面风平浪静、源站端口全网直连可达"的现象,直接暴露了源站公网 IP 的 TCP 端口未做回源段收敛——安全组里 0.0.0.0/0 的 443 放行规则是早期测试残留,攻击者只要扫到源站 IP 就能绕过 CDN 直打源站。
问题往往不在 CDN 配置,而在源站安全组/iptables 与 CDN 回源策略不同步:多运维操作链(A 改高防、B 改安全组、C 改 iptables)信息错位,历史 0.0.0.0/0 放行未清理。常规本地telnet 源站IP 443只能代表你这条宽带;单机 tcping 也看不到"海外节点能不能直连"。本文将教你用 KKCE 的“在线TCPING”(全球 3000+ 节点)结合"在线Ping"、"IP查询"、"路由查询" 与"网站测速",把 CDN 回源端口暴露面钉死,而不是被"控制台写着仅放行回源段"麻痹。
二、CDN 回源与源站暴露的技术底座
2.1 正常回源架构该是什么样
- 源站公网 IP 安全组:仅放行 CDN/高防回源段(如阿里云 CDN 回源 IP 段、Cloudflare 段),拒绝 0.0.0.0/0。
- ICMP:通常 DROP(防扫描)。
- TCP 443:只对回源段 SYN-ACK,对其他源 IP 的 SYN 要么 REJECT(RST),要么 DROP。
2.2 为什么 TCPing 能测出暴露
TCPing 向源站IP:443发 SYN → 若任意公网节点收到 SYN-ACK,证明该端口对全网开放,不止对 CDN 开放。
Port is open来自海外节点 → 源站 443 对海外直连开放,绕过 CDN。timeout→ 可能 DROP(好),也可能链路丢 SYN(需结合路由判断)。connection refused→ 端口没监听(源站挂了或没起 Nginx)。
2.3 为什么必须全球 3000+ 节点
单机 tcping 源站通,可能是你 IP 恰在回源段白名单;只有从全球 3000+ 节点(电信/移动/联通/教育网/多线/海外及港澳台)并发握,才能回答:"巴西普通宽带、美国住宅 IP、东南亚移动网络"能不能直连源站。这是暴露面审计的底线。
三、利用 KKCE 全球 3000+ 节点矩阵审计回源暴露
KKCE(快快测,www.kkce.com)是综合网络检测平台,"在线TCPing"支持 IPv4/IPv6、指定端口、全球 3000+ 探测节点并发,节点密度超过市面所有平台。平台同时提供在线Ping、批量TCPing(定时多目标巡检)、网站测速(完整截图、指定解析/DNS/UA/Cookies/Method/Referer/重定向)、DNS查询、DNS污染检测、路由查询(IPv4/IPv6)、MTR去程、Whois查询、IP查询、SSL检测、HTTP3检测、批量Ping、批量HTTP(S) 等,是 CDN 安全审计的瑞士军刀。
3.1 在线TCPing:源站端口全网握手
- 操作:www.kkce.com →"在线TCPing" → 输源站公网 IP → 端口
443(顺带测 80/22/3306)→ 节点全选(全球 3000+)→ 执行。 - 看什么:
- 连接成功率:全节点 open → 源站对全网开放,严重暴露。
- 按运营商/海内外分组:仅海外 open、国内 timeout → 安全组可能只限制了国内段,海外漏了。
- 多端口对比:443 open 但 22 timeout → 22 收敛了,443 没收敛。
3.2 在线Ping 对照:确认 ICMP 状态
- 操作:同源站 IP 跑"在线Ping"。
- 目的:Ping 全丢 + TCPing 443 全 open → 典型"禁 ICMP 但 TCP 全网开放",暴露面最大(扫端口工具最爱这种)。
3.3 IP查询:确认源站归属与高防关系
- 操作:把源站 IP 丢进"IP查询"。
- 目的:确认是否云厂商 EIP、是否与高防 ASN 不同;若源站 IP 还绑定了真实域名 A 记录(用 Whois+DNS查询 反查),暴露风险加倍。
3.4 路由查询:看 SYN 死在哪
- 操作:对 TCPing open 的海外节点 IP 跑"路由查询" 到源站。
- 目的:确认路由真的抵达源站所在云 ASN,而非被某中转代理回 SYN-ACK(误判)。
3.5 网站测速交叉:直连源站能否出页面
- 操作:"网站测速" 高级选项指定解析 填源站 IP,Method=GET,勾完整截图,选海外节点。
- 目的:若截图直接出业务首页 → 不仅端口开,应用层也直连可达,CDN 被完全绕过。
四、实战:某 SaaS"换 CDN 后源站 IP 泄露被 DDoS 直打"
背景:业务接了高防 CDN,控制台安全组写"仅放行 CDN 回源段"。但某天源站 CPU 跑满,查日志发现大量海外 IP 直连源站 443。用 KKCE在线TCPing(全球 3000+ 节点)测源站公网 IP:443:
- 北京电信:Port is open, 17ms
- 广东移动:Port is open, 21ms
- 法兰克福海外:Port is open, 54ms
- 圣保罗海外:Port is open, 61ms
- 同目标在线Ping:全节点 100% 丢
- IP查询:源站 IP 归属云厂商 EIP,DNS查询 反查发现
[](@replace=10010) A 源站IP未删
排查链:
- 在线TCPing 全球全 open → 源站 443 对全网直连开放。
- 登云控制台安全组:入站 443 规则竟有两条——
允许 CDN段(新)、允许 0.0.0.0/0(早期压测残留未删)。 - iptables 里也无
tcp dport 443 -s CDN段限制,纯靠安全组但安全组有漏洞。 - 网站测速(指定解析到源站 IP,法兰克福节点)完整截图:直接返回业务首页 200。
根因:安全组 0.0.0.0/0 放行 443 残留 + 源站域名 A 记录未删 → 攻击者通过 SSL 证书反查/域名解析拿到源站 IP 直打。
优化:- 安全组删 0.0.0.0/0 443,仅留 CDN 回源段(并加进 iptables 二层防护)。
- 删 origin.example.com A 记录,源站改用内网 VIP 回源。
- 用 KKCE批量TCPing 对源站 IP:443 做每日全球巡检,任意海外节点 open 即告警。
复测:海外节点 TCPing 443 全部 timeout,直连网站测速 503(CDN 正常则返回 200)。
五、CDN 回源暴露审计清单
- 全球节点在线TCPing:用 KKCE在线TCPing(3000+ 节点)对源站 IP 测 443/80/22/3306,记录各节点 open/timeout/refused。
- 在线Ping 对照:同目标测 ICMP,确认"禁 Ping 但 TCP 开"的高危组合。
- IP查询+DNS查询:确认源站 IP 归属、反查域名 A 记录是否泄露。
- 路由查询:TCPing open 节点追路由,确认真抵源站 ASN。
- 网站测速交叉:指定解析到源站 IP,看应用层是否直连出页。
- 持续批量:批量TCPing 定时巡源站端口,海外 open 即告警。
六、总结:CDN 前面稳,不等于源站门没锁
CDN/高防的价值是"用户看不到源站",但如果源站公网 IP 的 TCP 443 对全网 SYN-ACK,那层保护就破了——攻击者不需要绕 CDN,直接 TCPing 扫到源站 IP 就能直打。通过 www.kkce.com(KKCE 快快测,全球 3000+ 节点、超过市面所有平台),我们学会用在线TCPing 测源站端口全网握手率,用在线Ping 做 ICMP 对照,用IP查询+DNS查询 反查暴露链,用网站测速 验证应用层直连:
- 我们用"海外节点 Port is open" 定义源站暴露。
- 我们用3000+ 节点并发 让任一地区的直连可达都现形。
- 我们用TCPing 成功率 代替"控制台规则截图"作为暴露面金标准。
CDN 箴言:最好的回源,是全世界除了 CDN 没人能敲开源站 443 的门。在 KKCE 的"在线TCPing"里,那个法兰克福节点
Port is open, time=54ms,就是源站安全组 0.0.0.0/0 残留规则的无声证据。审计它,你的高防才不会在源站被直打时变成摆设。