主 题:终于是解决了ESA的黑洞IP问题了:自动维护边缘 IP 池
发 布 者:exit
标签分类: 技术
时 间:2026-10-15 00:22:33
内容预览:适用场景:站点套了阿里云 ESA(同类还有腾讯云 EdgeOne、Cloudflare),大陆用户偶发「打不开 / 转圈」。环境预设:云函数与域名解析在同一个账号、同一个中国大陆地域(不同区也可以做,只是要多配一步跨区调用)。一、问题出在哪(原理)ESA 给的接入目标(本站实际用的就是 www.say.li.a1.inittt.com)返回的不是固定的几个 IP,而是一批边缘 IP;这批 IP 按「请求来源的运营商 / 地域」分发 —— 同一个域名,联通可能解析到 16 个、电信只有几个,用公共 DNS 与用运营商自带 DNS 结果也可能不同;其中有一部分 IP 从中国大陆方向完全不可达(TCP 443 无响应,俗称「黑洞」);客户端每次冷解析都会从池里随机挑一个:命中好 IP → 秒开;命中黑洞 → 几十秒无响应 / 打不开。而接入目标那批记录的 TTL 很短,缓存一过期就重新抽签 —— 于是表现为「有时能开、有时打不开」,且换网络 / 换设备结果还不一样。一句话:问题不在 CDN 本身,而在「客户端每次都要从一批好坏混杂的 IP 里抽签」。二、解决思路不要让域名直接 CNAME 到接入目标(那等于把含黑洞的整个池丢给客户端抽签);改成让 DNS 只回答「当前确定可用的 IP」,并用云函数定时刷新这份清单。 查询 www.say.li客户端 ──────────────► 你的 DNS(分线路解析) ├─ 联通线路 → A 记录 = 当前可用 IP ← 云函数自动维护 ├─ 电信线路 → A 记录 = 当前可用 IP ← 云函数自动维护 └─ 默认线路 → CNAME → Cloudflare(境外用户)云函数
直达链接: https://www.nodeseek.com/post-984104-1
发 布 者:exit
标签分类: 技术
时 间:2026-10-15 00:22:33
内容预览:适用场景:站点套了阿里云 ESA(同类还有腾讯云 EdgeOne、Cloudflare),大陆用户偶发「打不开 / 转圈」。环境预设:云函数与域名解析在同一个账号、同一个中国大陆地域(不同区也可以做,只是要多配一步跨区调用)。一、问题出在哪(原理)ESA 给的接入目标(本站实际用的就是 www.say.li.a1.inittt.com)返回的不是固定的几个 IP,而是一批边缘 IP;这批 IP 按「请求来源的运营商 / 地域」分发 —— 同一个域名,联通可能解析到 16 个、电信只有几个,用公共 DNS 与用运营商自带 DNS 结果也可能不同;其中有一部分 IP 从中国大陆方向完全不可达(TCP 443 无响应,俗称「黑洞」);客户端每次冷解析都会从池里随机挑一个:命中好 IP → 秒开;命中黑洞 → 几十秒无响应 / 打不开。而接入目标那批记录的 TTL 很短,缓存一过期就重新抽签 —— 于是表现为「有时能开、有时打不开」,且换网络 / 换设备结果还不一样。一句话:问题不在 CDN 本身,而在「客户端每次都要从一批好坏混杂的 IP 里抽签」。二、解决思路不要让域名直接 CNAME 到接入目标(那等于把含黑洞的整个池丢给客户端抽签);改成让 DNS 只回答「当前确定可用的 IP」,并用云函数定时刷新这份清单。 查询 www.say.li客户端 ──────────────► 你的 DNS(分线路解析) ├─ 联通线路 → A 记录 = 当前可用 IP ← 云函数自动维护 ├─ 电信线路 → A 记录 = 当前可用 IP ← 云函数自动维护 └─ 默认线路 → CNAME → Cloudflare(境外用户)云函数
直达链接: https://www.nodeseek.com/post-984104-1