#15
Network DiagnosticsMulti-Signal FusionEdge ComputingConnectivity

NetPulse — Multi-Signal Weighted Connectivity Diagnostics Platform

Modern multi-signal weighted network accessibility and connectivity diagnostics platform running on edge computing, synthesizing multi-layer probes into comprehensive health metrics.

Application & Engineering Screenshots

1 views
NetPulse Diagnostics Dashboard
NetPulse Diagnostics Dashboard

Technical Specifications & Architecture

NetPulse (网络脉冲)

基于 Cloudflare Pages 边缘计算的多信号融合网络可达性与连通性诊断系统
A Modern, Multi-Signal Weighted Network Accessibility & Connectivity Diagnostics Platform

Cloudflare Pages TypeScript Node.js License GitHub Actions


📖 目录


💡 项目简介

NetPulse 是一款轻量、极速且具备企业级安全防护的网络可达性与域名状态综合诊断工具。

传统的连通性测试工具通常依赖于单一维度的 Ping 或 curl 测试,极易因各地网络波动、CDN 节点屏蔽或单纯的 HTTP 状态异常导致误报(False Positives)与漏报(False Negatives)。

NetPulse 依托 Cloudflare 全球边缘网络(Pages Functions) 与 Cloudflare KV 分布式缓存,将权威阻断数据库比对、Cloudflare DoH 域名解析及已知 DNS 污染 IP 分析、边缘节点真实 HTTP/HTTPS 握手连通性探测三路信号通过数学模型进行动态加权评估,输出包含状态判定、综合置信度分数及逐项信号详情的精确诊断报告。

前端采用纯原生深色赛博朋克极简美学设计(Vanilla HTML5 + CSS3 + 现代 ES 模块),无重度框架依赖,首屏毫秒级冷启动,并完整支持 8 种语言的本地化切换。


✨ 核心特性

  • 🔬 三路信号融合判定(Multi-Signal Verdict):
    • GreatFire / GFWList 数据集(权重 50%):精确匹配与父域名继承匹配。
    • Cloudflare DoH DNS 污染分析(权重 30%):毫秒级解析与内置已知 DNS 污染 IP 库进行比对。
    • 边缘节点 HTTP 连通性探测(权重 20%):智能协议自适应与网络时延测算。
  • ⚡ 自适应多级边缘缓存(Adaptive KV Cache):
    • 基于 Cloudflare Workers KV,根据诊断状态动态分配 TTL(正常 300s、阻断 1800s、受限 180s、下线 120s)。
    • SHA-256 域名哈希索引,毫秒级 Cache Hit 极速响应,大幅减轻源站与外部 API 压力。
  • 🛡️ 严格的企业级安全防御(Enterprise Defense-in-Depth):
    • 全面 SSRF 防御:严格拦截 IPv4/IPv6 私有内网网段(RFC1918、环回、链路本地、运营商保留段等)以及云服务商元数据端点(如 169.254.169.254)。
    • 双重速率限制(Rate Limiting):基于 IP 的固定时间窗口限制(10 次/分,100 次/时),异步非阻塞更新计数器。
    • 全套安全响应头:强制 CSP、HSTS、X-Content-Type-Options: nosniff、X-Frame-Options: DENY,防范 XSS、点击劫持与 MIME 混淆。
  • 🎨 前沿赛博深色科技风设计(Cyberpunk Aesthetics):
    • 极光光晕背景、动态雷达扫描动画、拟物化状态呼吸指示灯与平滑进场动画。
    • 支持单域名诊断与批量诊断(最多 5 个域名并发并行)。
    • 纯 CSS 响应式自适应布局(适配桌面、平板、移动端触摸屏)。
  • 🌐 多语言国际化(i18n):
    • 内置 8 种语言支持:简体中文 (zh-CN)、繁体中文 (zh-TW)、English (en)、日本語 (ja)、한국어 (ko)、Español (es)、Deutsch (de)、Français (fr)。
    • 浏览器首选语言自动嗅探 + 本地存储持久化。
  • 🔒 严格零数据收集与隐私保障(Privacy First):
    • 诊断历史记录完全保留在用户浏览器的 localStorage 中,服务端不持久化记录任何用户的查询历史。
  • 🤖 全自动化数据运维(CI/CD & Sync Automation):
    • GitHub Actions 每周一定时从开源上游(Citizen Lab 与 GFWList)拉取最新域名阻断规则并自动更新内联数据集。
    • 代码推送自动触发 Cloudflare Pages 构建与部署。

🏛️ 系统架构

架构流程拓扑

flowchart TD
    Client["用户前端 (Browser UI / API Client)"] --> Middleware["functions/api/_middleware.ts<br/>(CORS / 安全头 / 请求合法性过滤)"]
    
    subgraph EdgeBackend["Cloudflare Pages Functions (Edge API)"]
        Middleware --> Router["functions/api/check.ts<br/>(POST /api/check)"]
        Router --> RateLimit{"速率限制<br/>(src/security/ratelimit.ts)"}
        RateLimit -- 超过限制 --> Resp429["返回 429 Too Many Requests"]
        RateLimit -- 允许 --> Validator{"输入校验 & SSRF 过滤<br/>(src/security/validator.ts)"}
        Validator -- 非法/私有地址 --> Resp400["返回 400 Bad Request"]
        Validator -- 合法 URL --> Engine["检测核心调度<br/>(src/checker/index.ts)"]
        
        Engine --> KVCache{"查询 KV 缓存<br/>(src/cache/kv.ts)"}
        KVCache -- Cache Hit --> CachedResp["读取缓存返回 (fromCache: true)"]
        
        KVCache -- Cache Miss --> Signals["并发执行三路检测<br/>(Promise.allSettled)"]
        
        subgraph SignalsGroup["三路检测信号"]
            Signals --> SigGF["1. GreatFire 数据集匹配<br/>(src/checker/greatfire.ts)"]
            Signals --> SigDNS["2. Cloudflare DoH 解析<br/>(src/checker/dns.ts)"]
            Signals --> SigHTTP["3. 边缘 HTTP/HTTPS 探测<br/>(src/checker/http.ts)"]
        end
        
        SigGF --> Verdict["综合评判研判算法<br/>(src/checker/verdict.ts)"]
        SigDNS --> Verdict
        SigHTTP --> Verdict
        
        Verdict --> AsyncCache["异步回写 KV 缓存<br/>(根据状态设置 TTL)"]
    end
    
    Verdict --> RespSuccess["返回诊断结果 JSON (200 OK)"]
    CachedResp --> RespSuccess
    RespSuccess --> Client

技术栈构成

层级 技术选型 说明
前端展现层 Vanilla HTML5 / CSS3 / ES2022 JavaScript 零外部前端框架依赖,极小打包体积,极速加载性能
设计与动画 CSS 变量、@keyframes、Flexbox / Grid、SVG 赛博深色主题,支持 prefers-reduced-motion 减弱动画
边缘计算层 Cloudflare Pages Functions 部署在 Cloudflare 全球 300+ 边缘节点,V8 隔离沙箱运行
存储与缓存 Cloudflare Workers KV 分布式高性能键值数据库,支持纳秒级读取与自过期机制
开发与类型 TypeScript 5.x/6.x、Wrangler CLI 严格类型系统保障无 any 越界,规范工程化开发流程
测试框架 Vitest 快速执行单元测试与类型集成校验

📊 判定模型与算法规范

NetPulse 采用加权评分与降级重归一化机制,结合特征规则进行最终状态判定。

1. 信号评分规则

探测维度 模块 权重 判定条件与单项得分
GreatFire / GFWList src/checker/greatfire.ts 50% • 精确命中黑名单:score = 1.0
• 命中父级域名:score = 0.85
• 未命中:score = 0.0
DNS 污染探测 src/checker/dns.ts 30% • 命中已知 DNS 污染 IP 库:score = 0.95 (poisoned = true)
• NXDOMAIN (不存在域名):score = 0.4
• DoH 请求超时或异常:score = 0.2 (checked = false)
• 正常解析且未被污染:score = 0.0
边缘 HTTP 探测 src/checker/http.ts 20% • 正常响应 (2xx/3xx/4xx/5xx):score = 0.0 (reachable = true)
• 连接超时 / 网络不可达:score = 0.25 (checked = false)

2. 动态权重重归一化

若网络抖动导致 DNS 或 HTTP 信号探测超时(checked === false),引擎会自动将失败信号的权重置为 0,并将剩余可用信号的权重进行等比例重归一化(Re-normalization),避免因单点网络异常导致结果出现剧烈偏差。

3. 最终状态与置信度定义

根据加权总得分($S \in [0.0, 1.0]$),系统确定最终状态与置信度(Confidence):

判定状态 (status) 触发条件 置信度计算公式 业务含义
unavailable 特殊优先规则:HTTP 不可达 且 未命中黑名单 且 DNS 未被污染 且 DNS 解析失败 $0.80 + (0.30 - S) \times 0.67$ 服务下线/故障:目标服务器自身停止服务或域名未解析,非人为网络封锁。
blocked $S \ge 0.60$ $0.70 + (S - 0.60) \times 0.75$ 受到封锁:域名在阻断列表中或解析结果存在明确的 DNS 污染。
restricted $0.30 \le S < 0.60$ $0.40 + S \times 0.40$ 连接受限:存在部分异常信号或父域阻断,可能存在间歇性干扰。
accessible $S < 0.30$ $0.80 + (0.30 - S) \times 0.67$ 正常访问:三路检测指标均表现良好,未发现封锁与污染迹象。
error DNS 与 HTTP 两路异步探测均发生严重故障或超时 $0.00$ 探测异常:网络诊断通道受阻,无法获得有效观测数据。

所有的置信度均在 [0.00, 1.00] 范围内自动截断并保留两位小数。


📁 目录结构

netpulse/
├── .github/
│   └── workflows/
│       ├── deploy.yml                 # Cloudflare Pages 自动构建与部署工作流
│       └── update-blocklist.yml       # 每周一定时拉取最新封锁名单并自动提交
├── data/
│   └── blocklist/
│       ├── dns_poisoned_ips.json      # 已知 GFW 污染常用假 IP 地址库
│       ├── greatfire_domains.json     # 离线打包的阻断域名数据集合
│       └── sensitive_domains.json     # 敏感内网、元数据端点与黑名单定义
├── functions/                         # Cloudflare Pages Functions 边缘函数
│   └── api/
│       ├── _middleware.ts             # 全局安全中间件 (CORS、Header 与方法鉴权)
│       └── check.ts                   # POST /api/check 诊断接口入口
├── public/                            # 前端静态资源目录 (Pages 托管入口)
│   ├── _headers                       # 生产静态响应头 (CSP, HSTS, 缓存控制)
│   ├── _redirects                     # URL 重定向规则
│   ├── index.html                     # 主界面 HTML (包含无障碍与模板系统)
│   ├── assets/
│   │   ├── css/
│   │   │   ├── main.css               # 主题样式变量、布局与各组件设计
│   │   │   ├── animations.css         # 动画特效 (@keyframes、雷达、指示灯)
│   │   │   └── responsive.css         # 响应式断点适配 (桌面 / 平板 / 手机)
│   │   └── js/
│   │       ├── api.js                 # API 通信与错误统一处理模块
│   │       ├── app.js                 # 主控制器与事件绑定模块
│   │       ├── history.js             # 本地 localStorage 历史管理模块
│   │       ├── i18n.js                # 多语言加载、自动检测与替换模块
│   │       ├── ui.js                  # DOM 渲染、模板克隆与安全渲染模块
│   │       └── validator.js           # 客户端轻量 URL 格式与协议校验
│   └── locales/                       # 国际化多语言翻译 JSON
│       ├── de.json                    # 德语 (Deutsch)
│       ├── en.json                    # 英语 (English)
│       ├── es.json                    # 西班牙语 (Español)
│       ├── fr.json                    # 法语 (Français)
│       ├── ja.json                    # 日语 (日本語)
│       ├── ko.json                    # 韩语 (한국어)
│       ├── zh-CN.json                 # 简体中文
│       └── zh-TW.json                 # 繁体中文
├── scripts/
│   ├── update-blocklist.js            # Node.js 版封锁域名更新清洗脚本
│   └── update-blocklist.sh            # Shell 版封锁域名更新清洗脚本
├── src/                               # 核心后端逻辑 (TypeScript 模块)
│   ├── cache/
│   │   └── kv.ts                      # Cloudflare KV 缓存读写封装与 TTL 计算
│   ├── checker/
│   │   ├── dns.ts                     # Cloudflare DoH 域名解析与污染探测
│   │   ├── greatfire.ts               # 本地内联阻断域名高效检索模块
│   │   ├── http.ts                    # 边缘 HTTP/HTTPS HEAD 请求探测
│   │   ├── index.ts                   # 诊断调度主控制器 (缓存 / 并发 / 研判)
│   │   └── verdict.ts                 # 加权评分与最终结论判定算法
│   ├── security/
│   │   ├── ratelimit.ts               # IP 固定窗口速率限制器
│   │   └── validator.ts               # 服务端严苛 URL 校验与 CIDR 私网防御
│   ├── utils/
│   │   ├── hash.ts                    # Web Crypto SHA-256 哈希工具
│   │   └── url.ts                     # URL 规范化与键生成工具
│   └── types.ts                       # 全局强类型定义契约
├── tests/                             # 自动化测试用例目录
├── package.json                       # 项目依赖与运行脚本
├── tsconfig.json                      # TypeScript 严格模式配置
└── wrangler.toml                      # Cloudflare Pages & KV 配置文件

🚀 快速开始与本地开发

环境要求

  • Node.js:>= 20.0.0
  • npm:>= 10.0.0
  • Git:>= 2.40.0

1. 克隆仓库并安装依赖

git clone https://github.com/yebin1982/netpulse.git
cd netpulse

# 安装开发依赖
npm install

2. 初始化/更新封锁数据集

在首次启动前,确保 data/blocklist/greatfire_domains.json 数据集完整可用:

npm run update-blocklist

3. 登录 Cloudflare(可选,本地模拟 KV)

若需在本地调试 Cloudflare KV 缓存绑定:

npx wrangler login

4. 启动本地开发服务器

使用 Wrangler 启动本地 Pages 模拟环境(包含边缘 Functions 运行时支持):

npm run dev

本地服务将启动并运行在:http://localhost:8788。在浏览器打开即可进入 NetPulse 界面。

5. 执行类型检查与测试

# 执行严格 TypeScript 类型无输出编译检查
npm run build

# 运行单元测试
npm run test

⚙️ 配置说明与环境变量

wrangler.toml 配置说明

核心配置文件位于根目录的 wrangler.toml:

name = "netpulse"
pages_build_output_dir = "public"
compatibility_date = "2024-01-01"

[vars]
APP_VERSION = "1.0.0"
MAX_BATCH_SIZE = 5               # 批量检测最大支持 URL 数量
CACHE_TTL_ACCESSIBLE = 300       # 正常访问结果缓存 5 分钟 (秒)
CACHE_TTL_BLOCKED = 1800         # 封锁结果缓存 30 分钟 (秒)
CACHE_TTL_RESTRICTED = 180       # 受限结果缓存 3 分钟 (秒)
CACHE_TTL_UNAVAILABLE = 120      # 下线/不可用结果缓存 2 分钟 (秒)
RATE_LIMIT_PER_MINUTE = 10       # 单 IP 每分钟最大请求次数
RATE_LIMIT_PER_HOUR = 100        # 单 IP 每小时最大请求次数
ALLOWED_ORIGIN = ""              # 允许的 CORS 跨域域名 (留空则使用默认策略)

[[kv_namespaces]]
binding = "KV"
id = "YOUR_CLOUDFLARE_KV_ID"     # 生产环境绑定的 KV ID

📡 REST API 接口规范

除了 Web 界面外,NetPulse 提供了标准的高性能 RESTful API 供自动化脚本调用。

诊断接口

  • 路径:POST /api/check
  • 方法:POST / OPTIONS
  • 请求头要求:
    • Content-Type: application/json
    • X-Requested-With: XMLHttpRequest (防 CSRF 伪造必填)

请求体示例

{
  "urls": [
    "https://google.com",
    "https://baidu.com"
  ]
}

注意:单个请求支持 1 至 5 个 URL。如果 URL 省略协议头(如 baidu.com),系统将自动补充规范化 https://。

成功响应示例 (200 OK)

{
  "success": true,
  "results": [
    {
      "url": "https://google.com",
      "normalizedDomain": "google.com",
      "status": "blocked",
      "confidence": 1.0,
      "signals": {
        "greatfire": {
          "inBlocklist": true,
          "score": 1.0,
          "dataVersion": "2026-06-01"
        },
        "dns": {
          "resolved": true,
          "poisoned": true,
          "resolvedIPs": ["37.61.54.158"]
        },
        "http": {
          "reachable": true,
          "statusCode": 301,
          "responseTimeMs": 142
        }
      },
      "fromCache": false,
      "cachedAt": null,
      "checkedAt": "2026-09-16T09:55:00.000Z"
    },
    {
      "url": "https://baidu.com",
      "normalizedDomain": "baidu.com",
      "status": "accessible",
      "confidence": 0.98,
      "signals": {
        "greatfire": {
          "inBlocklist": false,
          "score": 0.0,
          "dataVersion": "2026-06-01"
        },
        "dns": {
          "resolved": true,
          "poisoned": false,
          "resolvedIPs": ["110.242.68.66", "110.242.68.65"]
        },
        "http": {
          "reachable": true,
          "statusCode": 200,
          "responseTimeMs": 68
        }
      },
      "fromCache": true,
      "cachedAt": "2026-09-16T09:50:12.000Z",
      "checkedAt": "2026-09-16T09:50:12.000Z"
    }
  ]
}

响应字段解析

字段 类型 说明
url string 客户端原始传入的目标 URL
normalizedDomain string 系统去除协议、端口、多余路径后的规范化域名
status string 最终判定:accessible | blocked | restricted | unavailable | error
confidence number 综合研判置信度,取值范围 0.00 ~ 1.00
signals.greatfire object 阻断库匹配结果(是否命中 inBlocklist,得分 score,数据版本号)
signals.dns object DNS 解析结果(是否解析成功 resolved,是否污染 poisoned,解析所得 IP 列表)
signals.http object HTTP 探测结果(是否连通 reachable,HTTP 状态码 statusCode,探测耗时 responseTimeMs)
fromCache boolean 是否直接命中 KV 缓存结果
cachedAt string | null 缓存生成的最初时间戳 (ISO8601)
checkedAt string 本次检测或被缓存时的检测执行时间戳 (ISO8601)

错误响应示例

  • 触发速率限制 (429 Too Many Requests)

    {
      "success": false,
      "error": "Too Many Requests",
      "errorCode": "RATE_LIMIT"
    }
    

    包含响应头:Retry-After: 48,X-RateLimit-Reset: 1780000000

  • SSRF 非法地址拦截 (400 Bad Request)

    {
      "success": false,
      "error": "All provided URLs are invalid",
      "errorCode": "PRIVATE_ADDRESS"
    }
    
  • 合规风控与违规域名拦截 (400 Bad Request)

    {
      "success": false,
      "error": "All provided URLs are invalid",
      "errorCode": "COMPLIANCE_VIOLATION"
    }
    

cURL 终端测试指令

# 正常诊断测试
curl -s -X POST "http://localhost:8788/api/check" \
  -H "Content-Type: application/json" \
  -H "X-Requested-With: XMLHttpRequest" \
  -d '{"urls":["https://google.com","https://baidu.com"]}' | jq .

🚢 生产部署指南

1. Cloudflare Dashboard 初始化

  1. 创建 KV 命名空间:
    • 登录 Cloudflare Dashboard → Workers & Pages → KV。
    • 点击 Create namespace,创建 NETPULSE_KV。
    • 将生成的 Namespace ID 复制并填入 wrangler.toml 的 [[kv_namespaces]] 中的 id。
  2. 创建 Pages 项目:
    • 进入 Workers & Pages → Pages → Connect to Git。
    • 选择本仓库 netpulse。
    • 构建预设选择 None。
    • 构建命令填写:npm run build
    • 输出目录填写:public
  3. 绑定 KV 命名空间:
    • 在已创建的 Pages 项目设置中:Settings → Functions → KV namespace bindings。
    • 添加变量绑定:Variable name = KV,KV namespace 选择刚刚创建的 NETPULSE_KV。
  4. 绑定自定义域名:
    • Pages 项目页面 → Custom domains → 添加你所拥有的域名(Cloudflare 将自动配置边缘 SSL 与 CDN 路由)。

2. GitHub Actions 持续集成自动化配置

本仓库已内置自动化工作流 .github/workflows/deploy.yml。

请在 GitHub 仓库中配置以下两个 Secrets:

  • 进入 GitHub 仓库 → Settings → Secrets and variables → Actions → New repository secret:
    • CF_API_TOKEN:Cloudflare API 令牌(需要具备 Cloudflare Pages: Edit 权限)。
    • CF_ACCOUNT_ID:Cloudflare 账户 ID(可在 Cloudflare 仪表盘右侧获取)。

配置完成后,每次向 main 分支执行 git push,系统都会自动完成 TypeScript 类型校验并秒级部署至 Cloudflare 生产边缘。


🔄 运维与数据更新

自动化同步机制

仓库内置了 GitHub Actions 定时更新工作流 .github/workflows/update-blocklist.yml:

  • 触发周期:每周一 02:00 UTC(北京时间每周一 10:00)自动触发。
  • 运行流程:
    1. 运行 scripts/update-blocklist.js 从上游数据源拉取最新条目。
    2. 提取有效主机名、规范化小写并去重排序。
    3. 若检测到数据变化,自动以 Bot 身份提交并 Push 到仓库,随后触发 Pages 自动构建与部署。

手动即时更新

如果需要紧急更新域名数据:

  • 方式一:进入 GitHub 仓库页面 → Actions → 选择 Update Blocklist → 点击 Run workflow。
  • 方式二:在本地执行 npm run update-blocklist 并提交更改推送至远程仓库。

监控与关键指标参考

监控项 监控位置 告警建议阈值
Functions 报错率 Cloudflare Pages → Functions → Analytics 错误率 > 5%
KV 写入次数 Cloudflare KV → Metrics > 800 次/天 (免费计划额度 1000 次/天)
P95 响应时延 Cloudflare Analytics 缓存未命中时 > 5000ms;缓存命中时 > 200ms

🛡️ 安全设计与合规防护机制

NetPulse 针对公网诊断服务可能遭遇的各类攻击与合规风险实施了纵深防御:

  1. 合规风控与有害内容前置拦截 (src/security/validator.ts):
    • 严格依据法律法规要求,系统内置了对涉及暴恐、黄赌毒、电信诈骗及恶意钓鱼等违法违规敏感特征域名的前置过滤,拦截后直接返回 COMPLIANCE_VIOLATION,禁止探查。
  2. 严苛的服务端输入白名单与防 SSRF 校验 (src/security/validator.ts):
    • 绝不信任客户端传输的格式。
    • 过滤超长 URL(限制最长 2048 字符)。
    • 协议白名单仅允许 http: 与 https:,坚决拒绝 file:, gopher:, javascript:, data: 等危险协议。
    • 手写无外部依赖的 CIDR 掩码位运算,拦截私有 IPv4 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, 100.64.0.0/10)、链路本地 (169.254.0.0/16) 及广播/保留段。
    • 拦截私有局域网域名与特殊 TLD(如 .localhost, .local, .internal, .corp 等)。
    • 严禁探测云厂商元数据接口(169.254.169.254, metadata.google.internal)。
  3. 防重放与请求合法性校验 (functions/api/_middleware.ts):
    • 强制客户端必须包含 X-Requested-With: XMLHttpRequest 请求头,阻止常规跨站表单提交与恶意扫描器。
    • 生产环境严格校验 Origin 来源,仅允许指定信任域名跨域。
  4. 客户端与渲染 XSS 绝对防护 (public/assets/js/ui.js):
    • 所有用户输入或后端返回的域名与 URL 字符,渲染至 DOM 时一律强制采用 textContent 注入,杜绝 innerHTML 带来的 DOM-based XSS 风险。
    • HTML 页面启用严格 CSP(Content-Security-Policy),禁止内联脚本执行。

⚖️ 隐私与免责声明

  • 服务性质与技术中立性(严正非翻墙声明):
    • NetPulse 为纯中立的开源网络工程排错与连通性分析工具。本系统绝非翻墙代理、VPN 或网络穿透工具,亦不提供任何绕过国家网络监管的信道或技术手段。严禁用于任何非法网络活动。
  • 数据隐私保障(零日志):
    • 本工具坚守隐私第一原则。服务端不建立任何与用户 IP 或个人身份绑定的诊断日志与持久化查询追踪。
    • 用户界面中的“历史诊断记录”完全存放于用户本地浏览器的 localStorage 中,随时可通过点击“清空历史”彻底销毁。
  • 免责与非担保声明:
    • 本系统提供的检测结果基于边缘探测节点、公开权威数据集及公共 DoH 递归解析得出,仅供网络技术排错、学术研究及网站可达性自查参考。
    • 实际网络连通状况可能会受到用户本地运营商(ISP)、地域策略、本地 DNS 劫持及物理线路波动的影响,NetPulse 不对检测结果的绝对时效性与准确性承担连带担保责任。
  • 完整协议与条款:

📄 开源协议与致谢

本项目采用 ISC License 许可证开源。

开源致谢与数据来源


Made with ⚡ by NetPulse Team.