news 2026/10/5 6:59:03

子域名基础05_Web与网络层

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
子域名基础05_Web与网络层

子域名挖掘前置基础 05:Web 与网络层

本篇定位:前面四篇讲的都是 DNS 层——域名怎么解析、记录是什么、委派怎么运作。但子域名解析到 IP 之后,背后跑的是 Web 和网络服务。本篇讲子域名背后的 Web 与网络层——CDN、负载均衡、网络架构图、HTTP/HTTPS 与 TLS 基础。这些知识决定了你拿到的 IP 是不是目标真实服务器。

阅读建议:本篇只讲基础概念和原理。CDN 绕过技巧、TLS 证书挖掘价值这些"实战方法"留到后续子域名搜集方法章节。


一、CDN 介绍与 CDN 调度

子域名挖掘里有一个高频问题——为什么你nslookup拿到的 IP,往往不是目标的真实服务器?答案就是 CDN。

1.1 什么是 CDN

CDN(Content Delivery Network,内容分发网络)是通过全球分布的边缘节点缓存和加速内容交付的架构。

要理解 CDN,先理解没有 CDN 时的痛点:用户访问www.example.com,DNS 解析到源站 IP(比如在美国的一台服务器),全球用户都打到这台服务器——离得远的用户延迟高、服务器压力大、网络一旦中断所有人都访问不了。

CDN 的解法是在源站和用户之间加一层"缓存节点":

角色位置作用
源站目标企业自己的服务器真正的内容来源,CDN 的"上游"
边缘节点CDN 服务商全球分布的节点缓存源站内容,用户就近访问
用户任意地理位置访问时被调度到最近的边缘节点

工作流程是:用户请求 → 被调度到最近的边缘节点 → 边缘节点缓存命中就直接返回、未命中就回源站取一份缓存起来再返回。这样源站 IP 被隐藏在 CDN 后面,用户看到的是边缘节点的 IP。

关键认知:CDN 的本质是"中间缓存层"。源站 IP 被隐藏——这就是为什么子域名挖掘里,拿到一个走 CDN 的子域名 IP,不能直接当成目标真实 IP 去扫端口。

1.2 CDN 的调度核心:智能 DNS

CDN 怎么知道用户在哪儿、该返回哪个节点 IP?靠的是智能 DNS。

普通 DNS 查询返回的是固定 IP,不管你从哪查都一样。但 CDN 的 DNS 不一样——它返回哪个 IP,取决于查询者的来源 IP。这就是"智能"二字的含义:DNS 应答会根据查询者地理位置变化。

DNS 解析
api.example.com

返回 1.2.3.4
(北京边缘节点)

HTTPS 请求
SNI: api.example.com

缓存命中

缓存未命中
回源请求

返回内容

缓存 + 返回

DNS 解析

返回 5.6.7.8
(纽约边缘节点)

HTTPS 请求

用户(北京)

CDN 的智能 DNS
(根据用户 IP 的地理位置
返回最近的边缘节点 IP)

北京边缘节点
IP: 1.2.3.4
(缓存层)

源站/回源地址
Host: api.example.com
(可能是 LB 或真实服务器)

用户(纽约)

纽约边缘节点
IP: 5.6.7.8

从挖掘者视角解读:

角色作用挖掘意义
智能 DNS(红)根据用户地理位置返回最近的边缘节点 IP你拿到的 IP 取决于你从哪查——北京查和纽约查不同
边缘节点(橙)缓存层,用户看到的 IP直接扫端口没意义,你扫的是 CDN 节点不是目标
源站(绿)真实后端服务器找到源站 IP 是绕过 CDN 的核心目标

1.3 CDN 调度对子域名挖掘的影响

影响点说明
地理位置差异在北京查和纽约查同一个子域名,返回的 IP 不同
多 IP 结果同一子域名在不同时间解析到不同 IP
不能直接扫端口扫的是 CDN 节点,不是目标
必要时多地域验证用多个地理位置的 DNS 节点交叉查询

关键认知:识别 CDN 不是为了"绕过"这一步就搞定,而是为了给每个子域打上"是否走 CDN"的标记。这个标记决定了后续每个子域的处理方式——走 CDN 的不能直接扫端口,没走 CDN 的可以直接扫。

1.4 CDN 检测的基础信号(只讲概念)

如何判断一个子域名是否走了 CDN?基础信号有:

信号类型说明
CNAME 链含 CDN 关键词cloudflare、akamai、fastly、cloudfront、wangsu(网宿)
多地域解析不同 IP在不同地理位置查同一域名,返回不同 IP
IP 归属是 CDN 服务商IP 归属查显示运营商是 CDN 而非目标企业
响应头含 CDN 特征cf-ray(Cloudflare)、x-akamai、x-amz-cf-id

CDN 绕过的具体思路(历史 DNS、邮件服务器、SSL 证书等)留到后续"主动探测"章节展开。


二、负载均衡

CDN 是公网入口层的加速,再往里就是负载均衡。负载均衡决定了"一个域名背后可能挂了多少台服务器"。

2.1 什么是负载均衡

负载均衡(Load Balancing)是把进入的流量分发到多台后端服务器的技术。目的是分摊压力、提高可用性、做横向扩展。

要理解负载均衡,先理解没有它时的痛点:一台服务器扛不住高峰流量、一旦宕机服务就中断、没法动态扩容。负载均衡的解法是在服务器集群前面加一个"分发器"——所有请求先到分发器,由它按一定策略转发给后端某一台服务器。用户看到的只是分发器的 IP,后端服务器对用户不可见。

2.2 两种负载均衡模式

这两种模式的根本区别是工作在 OSI 模型的哪一层——四层只看网络层信息(IP+端口),七层会拆开 HTTP 请求看内容。

模式工作层级看什么做分发挖掘意义
L4(四层 LB)传输层只根据 IP+端口转发,不解析 HTTP 内容同一 IP 上可能承载多种协议(HTTP、MySQL、Redis 都可能)
L7(七层 LB)应用层解析 HTTP 请求,根据 Host 头或 URL 路径分发同一 IP+端口上可能托管多个子域名——IP 反查能发现更多子域

简单记忆:L4 只看信封(IP+端口),L7 拆开信封看内容(Host 头、URL)。L7 能基于 Host 头分发是关键——这意味着一个 IP 可以托管多个子域名,是 IP 反查发现新子域的原理基础。

2.3 常见负载均衡实现

类型说明典型实现特点
硬件负载均衡专用硬件设备F5 BIG-IP性能强、贵、企业级
软件负载均衡跑在通用服务器上LVS、Nginx、HAProxy灵活、成本低、最常见
云负载均衡云厂商提供阿里云 SLB、AWS ELB/ALB弹性伸缩、按量付费

2.4 负载均衡的调度算法(基础)

分发器用什么策略选后端服务器?常见的几种:

算法怎么选对挖掘的影响
轮询按顺序一台一台轮多次请求可能打到不同后端
最少连接选当前连接数最少的高负载时倾向打到空闲服务器
IP Hash同一来源 IP 固定打到同一台同一 IP 的请求总到同一后端,行为稳定
加权按权重比例分发配置强的后端分得多

挖掘关注:负载均衡意味着同一域名背后有多台后端、同一域名多次请求可能返回不同内容。这是正常的,不是异常——做 HTTP 探测时要意识到这一点。

2.5 对子域名挖掘的意义

影响点说明
一个域名对应多个 IP负载均衡会让你拿到多个 IP,都是 LB 的,不是后端的
一个 IP 承载多个子域L7 LB 下,一个 IP 可能托管多个子域名——IP 反查能发现更多子域
后端服务器不可见LB 后面的真实服务器 IP 从外部看不到,是正常的

关键认知:负载均衡让你看到的 IP 是 LB 的公网 IP,不是后端服务器的真实 IP。这和 CDN 一样——你拿到的是"入口",不是"目标"。


三、网络架构图:从用户到后端的全景

把 CDN 和负载均衡串起来,就是一个完整的网络架构。这一节用一张图展示从用户到后端的完整链路。

3.1 整体网络架构图

真实世界的 Web 系统不只有 CDN 和 LB,中间还可能有 WAF、反向代理等层。下面是一张更完整的链路图:

1. DNS 解析
api.example.com

返回 IP

2. HTTPS 请求
SNI: api.example.com

过滤后

回源请求
Host: api.example.com

分发请求

浏览器

DNS 系统
(递归→根→TLD→权威)

WAF
(可选层)
拦截恶意请求

CDN 节点
(可选层)
缓存 + 加速

负载均衡器
(LB)

反向代理
(Nginx 等)
(可选层)

后端服务器集群
(真实 IP 隐藏在这里)

3.2 每一层的角色

层作用是否一定存在你能看到的
DNS 系统域名→IP 翻译一定解析出的 IP
WAF检测拦截恶意请求可选有时通过响应头能识别
CDN 节点缓存、加速、隐藏源站可选你拿到的 IP 经常是这里的
负载均衡器流量分发到后端大型站点常有LB 的公网 IP
反向代理路由、限流、鉴权常与 LB 合一一般看不到
后端服务器集群真正处理业务逻辑一定从外部看不到

3.3 为什么你拿到的 IP 往往不是目标真实 IP

关键认知:你ping、nslookup看到的 IP 是 CDN 节点或负载均衡器的,不是目标后端服务器的。这就是为什么 IP 归属分析如此重要——你必须先判断"这个 IP 是 CDN 的还是目标的",否则后续的端口扫描、漏洞扫描全打在 CDN/LB 上,毫无意义。

3.4 不是所有网站都走全套链路

上面的架构图是"完整链路",但现实中不同规模的网站链路不同:

网站规模典型链路你拿到的 IP 性质
小网站/个人站浏览器 → 后端服务器真实服务器 IP,可直接扫端口
中型企业站浏览器 → LB → 后端集群LB 的 IP,不是后端真实 IP
大型站点浏览器 → CDN → WAF → LB → 后端CDN 节点 IP,需要绕过找源站
云原生应用浏览器 → CDN → 云 LB → K8s → PodCDN 或云 LB 的 IP

关键认知:拿到一个子域的 IP 后,第一件事不是扫端口,而是判断"这个 IP 处于链路的哪一层"。不同层级的 IP,后续处理方式完全不同。

3.5 子域名挖掘里的"真实 IP"问题

子域名挖掘能发现子域名和解析 IP,但这些 IP 的"性质"各不相同:

IP 性质怎么判断后续处理
CDN 节点CNAME 含 CDN 关键词、IP 归属是 CDN不扫端口,要绕 CDN 找源站
负载均衡器IP 归属是云厂商、响应特征可扫端口,但打的是 LB
真实服务器IP 归属是目标企业、非 CDN高价值,直接扫端口
共享主机一个 IP 上有多个域名IP 反查发现更多子域

四、HTTP/HTTPS 与 TLS 证书基础

子域名发现不只是 DNS 的事。一个子域名有 A 记录,不代表它上面跑着 Web 服务——可能只是一个邮件服务器、一个 VPN 入口。你需要做 HTTP 探测来判断"这个子域名上到底有没有服务、是什么服务"。

4.1 HTTP 与 HTTPS 的基本区别

协议说明端口安全性
HTTP超文本传输协议,明文传输80内容可被中间人看到、篡改
HTTPSHTTP + TLS 加密443内容加密,防窃听防篡改

两者的本质区别是有没有 TLS 这层加密。HTTP 的请求行、请求头、请求体全是明文,任何能抓到包的人都能看到你访问了什么、提交了什么。HTTPS 在 HTTP 下面加了一层 TLS,先把数据加密再传,中间人只能看到加密后的密文。

挖掘关注:子域名挖掘做 HTTP 探测时,同一个子域名要同时试 80 和 443 端口——有些站点只在 80 提供 HTTP,有些只在 443 提供 HTTPS,还有些 80 会 301 跳转到 443。

4.2 HTTPS 的大致流程

本篇只讲大致流程,不讲握手细节。TLS 握手涉及密钥交换、加密套件协商等,这些对子域名挖掘不是核心。我们关心的是"这个流程里有哪些信息可以收集"。

服务器浏览器服务器浏览器1. ClientHello(含 SNI: 我要访问哪个域名)2. ServerHello + 证书(含域名、SAN、颁发机构、有效期)3. 密钥交换4. 加密的 HTTP 请求5. 加密的 HTTP 响应

每一步发生了什么:

步骤做什么信息暴露
1. ClientHello浏览器告诉服务器"我要访问哪个域名"(SNI)、支持哪些加密套件SNI 明文传输——中间人能看到你要访问的域名
2. ServerHello + 证书服务器返回选定的加密套件、服务器证书证书含域名、SAN、颁发机构、有效期——这些都能看到
3. 密钥交换双方协商出对称密钥后续内容用这个密钥加密
4. 加密请求浏览器发送加密后的 HTTP 请求中间人看不到内容
5. 加密响应服务器返回加密后的 HTTP 响应中间人看不到内容

关键认知:HTTPS 加密的是步骤 4 和 5 的内容,但步骤 1 的 SNI 和步骤 2 的证书是明文传输的。这就是为什么你能从网络流量里抓到 TLS 证书信息——证书本身不是秘密。

4.3 TLS 流程里能收集的信息

信息在哪挖掘价值
SNIClientHello 里暴露客户端要访问的域名
证书域名证书的 CN 字段这个 IP 上跑着哪个域名的服务
SAN证书的 Subject Alternative Name一张证书可能覆盖多个子域名
颁发机构证书的 Issuer 字段Let’s Encrypt 说明自动化部署,自签名说明测试环境
有效期证书的 Not Before / Not After刚签发说明活跃部署,过期未续签说明被遗忘的服务

4.4 SNI 是什么

SNI(Server Name Indication,服务器名称指示)是 TLS 握手时客户端告诉服务器"我要访问哪个域名"的扩展字段。

要理解 SNI 解决什么问题,先看没有它的情况:一台服务器(一个 IP)上托管了a.com和b.com两个 HTTPS 站点,每张证书不同。但 TLS 握手时服务器不知道你要访问哪个域名——它应该返回哪张证书?没法决定。早期 TLS 没办法解决,只能"一个 IP 配一张证书"。

SNI 的解法:客户端在 ClientHello 里带上"我要访问a.com",服务器据此返回a.com的证书。这样一个 IP 上就能托管多个 HTTPS 站点。

挖掘意义:SNI 让"一个 IP 托管多域名"成为可能。反过来,你拿一个 IP 去查所有指向它的域名(IP 反查),可能翻出同一台服务器上托管的、目标企业其他业务线的子域。

4.5 SAN 是什么

SAN(Subject Alternative Name,证书主体可选名称字段)是证书里列出"这张证书覆盖哪些域名"的字段。

要理解 SAN 解决什么问题,先看没有它的情况:一张证书只能绑定一个域名(CN 字段写的那个)。你有api.example.com、staging-api.example.com、admin-api.example.com三个子域要上 HTTPS,就要签三张证书、配三次。SAN 的解法:把多个域名都写进一张证书的 SAN 字段里,一张证书覆盖多个子域。

挖掘意义:一张证书的 SAN 里可能藏着多个你不知道的子域名。你查一张api.example.com的证书,SAN 里可能写着staging-api.example.com、admin-api.example.com——这些是你之前不知道的子域名。这就是"证书透明度日志"挖掘子域名的原理。

4.6 HTTP 状态码的语义

不是背状态码含义,而是理解每个状态码对挖掘者意味着什么:

状态码通用含义对挖掘者的意义
200正常响应服务存在,可继续探测
301/302重定向重定向链可能暴露新的子域名
401未授权需要登录认证——往往是登录页或受限接口,价值高
403禁止访问有内容但你没权限——往往是管理后台、内部系统,价值最高
404不存在这个路径没有服务,但也可能是 WAF 拦截的假信号
502/503后端故障服务可能临时下线,但域名仍在,值得监控

关键认知:401/403 之所以价值高,是因为它说明"这里有东西,只是不让你看"——这和 404"确实没有"完全不同。401/403 往往指向管理后台或内部接口,是后续重点突破目标。另外 301/302 重定向链可能暴露新的子域名:比如app.example.com重定向到sso.example.com做登录——这个sso子域名可能不在你之前的列表里。


五、本篇小结

概念一句话
CDN源站和用户之间的缓存层,让你拿到的 IP 不是目标真实 IP
CDN 调度智能 DNS 根据用户地理位置返回最近的边缘节点 IP
负载均衡在服务器集群前加分发器,你看到的是 LB 的 IP
L4 vs L7L4 只看 IP+端口,L7 看 HTTP 内容(含 Host 头)
网络架构浏览器 → DNS → WAF → CDN → LB → 反代 → 后端,真实 IP 藏最里
不同规模链路不同小站直连后端,大站走全套链路,IP 性质不同
HTTP/HTTPSHTTP 明文、HTTPS 加密,子域名要 HTTP 探测判断有没有服务
TLS 证书SNI 和证书明文传输,SAN 可能覆盖多个子域名
SNI让一个 IP 托管多域名,IP 反查能发现更多子域
状态码401/403 价值最高(“有但不让你看”),301/302 可能暴露新子域

下一篇我们讲云与基础设施——云架构、WAF、ASN。


附:本篇关键术语速查

术语简明解释
CDN内容分发网络,源站和用户之间的缓存层
源站CDN 背后的真实后端服务器
边缘节点CDN 的缓存节点,用户看到的 IP 是这里的
回源CDN 缓存未命中时,向源站发请求
智能 DNSCDN 根据用户地理位置返回最近节点 IP 的 DNS
负载均衡在服务器集群前加分发器,分发流量到多台后端
L4 负载均衡工作在传输层,只看 IP+端口转发
L7 负载均衡工作在应用层,看 HTTP 内容(含 Host 头)转发
调度算法LB 选后端服务器的策略(轮询、最少连接、IP Hash 等)
反向代理位于 LB 和后端之间的中间层,做路由、限流、鉴权
HTTP明文 Web 协议,端口 80
HTTPSHTTP + TLS 加密,端口 443
TLS传输层安全协议,HTTPS 的加密基础
SNITLS 握手时客户端告诉服务器要访问哪个域名,明文传输
SAN证书覆盖的域名列表字段,一张证书可覆盖多个子域
证书透明度公开记录所有签发证书的日志系统
状态码HTTP 响应码,标识请求结果
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 6:58:34

Java 项目实战: 外卖平台优化-YApi接口管理平台与文档导入导出

前后端分离: YApi 接口管理平台的定义、导出与批量导入 纲要 完整使用链路: YApi 是什么:高效、易用、功能强大的 API 管理平台,需自行部署定义接口:创建项目 → 添加分类 → 添加接口 → 配置请求参数与响应数据接口状态流转&…

作者头像 李华
网站建设 2026/10/5 6:58:10

【嵌入式学习】嵌入式原理知识-RTC,PWR,Flash及低功耗(十)

1. Unix时间戳 1.1 Unix时间戳简介Unix时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始,共计经历的秒数,不考虑闰秒。 只使用秒计时,不进位。时间戳存在于一个秒计数器,为32位/64位的整…

作者头像 李华
网站建设 2026/10/5 6:55:33

mysql为创建普通用户并创建库赋权

bit::Shadow✧(≖ ◡ ≖✿ 目录 环境验证 链接MySQL的C头文件验证 相关动静态库验证 创建用户 赋权 登录 mysql链接验证test.c 编译 本文介绍MySQL客户端环境配置与C语言连接验证流程:安装开发包后验证头文件及库文件,创建本地用户并授予权限&am…

作者头像 李华
网站建设 2026/10/5 6:52:49

刷题题单...

目录基础算法位运算快速幂递归与递推前缀和与差分二分排序双指针区间合并高精度数据结构链表栈队列哈希表搜索DFSBFS树树的遍历trie字典树并查集堆图论图的遍历拓扑排序最短路径动态规划背包模型01背包完全背包分组背包多重背包混合背包贪心模拟区间问题数学公式基础算法 位运…

作者头像 李华