ym-ip 是一个一站式 IP 与网络诊断工具箱:打开页面自动体检,把一个 IP 的纯净底色、风控评级、物理坐标与代理轨迹一次查清。这篇讲清它有什么功能、怎么一步步部署出属于你自己的一个、Fork 部署和原站有什么区别、出了问题去哪检查、在哪维修。

一、为什么做它

测一个 IP 干不干净、有没有泄露,网上一搜一大把工具站:One IP、IPSuper、ping0、IPCheck.ing、TcpTest、Whoer……每家都有自己的长处,但问题是长处分散在六个站里:看纯净度去这家、测延迟去那家、查泄露又换一家,来回跳不说,各家的分数口径还不一样,看完更糊涂。

所以干脆自己收一个:把六家的长处挑回来,装进一个页面、一个文件。广度向 One IP / IPCheck.ing 看齐,评分口径向 ping0 看齐,呈现方式向 IPSuper 看齐。自己平时折腾优选 IP、筛节点池,天天要查,正好一次查全。

整站是一个纯静态单文件(就一个 index.html,样式和脚本全内联),没有构建步骤、没有后端、没有数据库,部署在 Cloudflare Pages 的免费额度里,零成本运行。

二、功能全清单

页面共 16 张卡,按「概览 / 查询 / 检测 / 隐私 / 历史」五类收纳,顶部吸顶导航一点即达,长表格在卡内小窗滚动,手机上不用一直往下翻;导航下方还常驻一条迷你状态条,当前出口和纯净度随时看得见。点一次「一键体检」,下面这些并行跑完:

综合评分

  • 纯净度圆环:0–100,越高越干净,配色随分数变(绿 → 黄 → 红)
  • 风控值分档(六档,区间含下限不含上限):≤15 极度纯净、16–25 纯净、26–40 中性、41–50 轻微风险、51–70 稍高风险、>70 极度风险
  • 类型标签:住宅 / 机房 / VPN / 代理判定,「是否被标记为代理」单独成标

出口与画像

  • IPv4 / IPv6 双出口分开测、分开展示:归属、运营商、ASN(自治系统编号)、组织、时区、经纬度、邮编全列,附 OpenStreetMap 定位地图(免密钥);双栈归属不一致会直接提醒
  • 查任意 IP:任意 IPv4 / IPv6 出完整画像,含地图与黑名单检测
  • 批量查 / 优选清单模式:一次粘贴最多 20 条,裸 IP 或者 IP:端口#地区 [类型] 格式的优选清单行都能吃,逐条出画像并按纯净度从高到低排好序
  • 多源交叉验证:主出口同时查两家数据库,国家 / 城市 / ASN / 时区逐项对照,不一致当场标出
  • Cloudflare 视角:接入机房、CF 眼中的出口 IP、TLS / HTTP 版本、WARP 状态——你的线路实际从哪个机房出去,一看便知
  • 双视角出口:两个国内来源(百度数据库、搜狐服务)看到的出口,与站点自己直连看到的出口是不是同一个,分流没分流一测便知
  • 黑名单检测:出口和被查 IP 都过一遍 Spamhaus ZEN / SORBS / Barracuda 三个公开黑名单库,另查是否 Tor 出口节点

连通性与 AI 可达

  • 站点延迟:国内 11 个(百度、淘宝、哔哩哔哩、知乎、微信、微博、抖音、京东、拼多多、小红书、支付宝)+ 国际 14 个(Google、YouTube、GitHub、Cloudflare、X、维基百科、Facebook、Instagram、Netflix、TikTok、Reddit、Telegram、Discord、Steam),从你自己的浏览器实测——测的是你这台设备、这条线路的真实体感;分组展示、给组平均延迟,另测 WebSocket 是否可用,每个站点还标出你实际连到的服务器所在地
  • AI 服务可达性:国际 8 家(ChatGPT、Claude、Gemini、Grok、Copilot、Perplexity、Meta AI、Mistral)+ 国内 9 家(DeepSeek、Kimi、豆包、通义千问、文心一言、智谱清言、腾讯元宝、海螺AI、讯飞星火)分组探活,每组给出可达计数和实际连到的服务器所在地

泄露与指纹

  • WebRTC 检测:暴露的公网 / 内网 IP 都列出,并与出口 IP 比对判定是否泄露
  • DNS 出口检测:实际解析你的 DNS 出口与归属,国家与 IP 归属不一致即提示泄露风险
  • 代理头检测:让回显服务把请求里被代理链加上去的头(X-Forwarded-For / Via / X-Real-IP)亮出来——透传了多余 IP,就是在告诉服务器你的真实地址或代理层级
  • 环境一致性评分:时区、语言地区、WebRTC、DNS 四项与 IP 归属逐项核对,不一致逐项扣分并写明原因(满分 100);外加 UA 解析、屏幕、CPU、内存、GPU 明细,Canvas 指纹与音频指纹哈希,系统时钟与服务器时间的偏差

工具箱

  • 带宽测速:经 Cloudflare 边缘节点测延迟 / 抖动 / 下载 / 上传四件套(约消耗 45 MB 流量),结果带口径说明
  • 域名解析查询:输入域名一次查 A / AAAA / CNAME / MX / NS / TXT 全部记录

历史与导出

  • 检测历史:最近 10 次(时间 / IP / 归属 / 风控值),只存你自己浏览器的本地存储
  • 导出报告:本次检测结果一键导出 JSON,存档、发人复核都方便

ym-ip 实际界面(示例数据 1.1.1.1):综合评分、双出口与 IP 详情同屏
ym-ip 实际界面(示例数据 1.1.1.1):综合评分、双出口与 IP 详情同屏

ym-ip 手机版界面(示例数据):五类导航吸顶,卡片不用一直往下翻
ym-ip 手机版界面(示例数据):五类导航吸顶,卡片不用一直往下翻

三、特点与优点

  • 纯静态单文件:全部功能就一个 index.html,没有构建、没有打包,打开源码就能看懂、就能改
  • 零后端、零数据库:所有检测都在访客自己的浏览器里现跑,服务器只负责把这一个文件发出去,所以没有服务器月租、没有数据库要维护
  • 打开就测:页面一开自动体检,不用注册、不用登录、不用配任何密钥
  • 免费额度内运行:Cloudflare Pages 静态请求不限量、每月 500 次构建,本站一个静态文件用量几乎为零;用到的归属、风险等接口都是公开免费接口、无需密钥
  • 隐私友好:没有后端就不收集、不上传检测记录;检测历史只存在访客自己浏览器的 localStorage 里,换浏览器、清缓存即消失
  • 代码与数据彻底分离:仓库只有代码,任何人的检测数据都不进仓库;仓库里的预览截图也是用公共 DNS 地址 1.1.1.1 这样的示例数据渲染的,不是任何人的真实结果

四、一步一步部署

推荐方式 A:Cloudflare Pages 连接 GitHub,全程在浏览器里点,三分钟左右搞定。之后往仓库推代码,Pages 会自动重新部署,新手也不用记任何命令。

方式 A:Pages 连接 GitHub(推荐)

第 1 步:把仓库连上 Pages
先把仓库 Fork 到你自己的 GitHub 账号下(仓库页右上角 Fork → 选自己的账号 → Create fork)。然后登录 Cloudflare 后台 → 左侧「Workers 和 Pages」→ 右上角「创建应用程序」→「Pages」→「连接到 Git」,选择你 Fork 出来的那份仓库。

ym-ip 仓库主页:文件列表与 README 开头,简介里写着综合六家同类站长处
ym-ip 仓库主页:文件列表与 README 开头,简介里写着综合六家同类站长处

后台截图:创建应用程序入口
部署入口在 Cloudflare 后台的「Workers 和 Pages」页:点右上角的「创建应用程序」(图中 ①),再选 Pages → 连接到 Git。

第 2 步:构建设置照着填
框架预设选「无」、构建命令留空、输出目录填 /,点「保存并部署」。约 1 分钟后你会拿到一个 xxx.pages.dev 地址,打开能自动开始检测,就是部署成功了。

后台截图:构建配置与分支控制
部署完成后在项目的「设置」页能核对:① 构建配置(构建命令、根目录留空,输出目录为 /,就是单文件直发的样子)② 分支控制(生产分支 main、自动部署已启用——推一次代码就自动更新一次)。

第 3 步(可选):绑上自己的域名
回到这个 Pages 项目 →「自定义域」→「设置自定义域」,填你想要的子域名。域名 DNS 已经托管在 Cloudflare 的,会自动加记录、自动签证书,什么都不用管;不在 CF 托管的,按页面提示去你的域名商那边手动加一条 CNAME,指向你的 xxx.pages.dev 地址即可。

方式 B:Pages 直接上传

嫌连 Git 授权麻烦的,也可以在 Cloudflare 后台「创建 → Pages → 上传资产」,把 index.html 打包成 zip 拖上去,立刻就能用。代价是每次更新都要手动重新上传一遍。

方式 C:本地打开

把 index.html 存到电脑或手机上,用浏览器直接打开也能测。只是个别接口在本地文件协议下可能受限,部署成 https 地址后最稳。

五、和原站的区别:Fork 部署后差在哪

先给结论:这一篇的项目是个例外——Fork 出来的站,功能和原站完全一致,不缺任何东西。 原因要讲清,因为它和很多项目不一样:

本站是纯静态单文件,全部检测都是在访客的浏览器里、打开页面的那一刻现跑的,用的是公开免费接口。页面代码就是全部功能,服务器端没有任何数据加工、没有任何定时更新任务。所以你 Fork 一份代码部署起来,测出来的东西和原站一模一样,不存在「原站有自动更新、我这份没有」这回事——这份代码里压根没有需要更新的数据。

真正的差别只有两条:

  1. 地址不一样:你没有原站那个自定义域名,用的是自己的 xxx.pages.dev 地址,或者按上面第 3 步绑上你自己的域名。就这一条区别,和功能无关。
  2. 原仓库以后发新版,你的 Fork 不会自动跟进:GitHub 的规则是 Fork 出来的仓库是独立副本,原仓库更新不会自己流过来。想升级时,打开你 Fork 仓库的页面,点分支上方的「Sync fork(同步 Fork)」按钮,确认更新即可,Pages 连着 Git 的话同步完会自动重新部署。嫌麻烦也可以不升——本站不升版也能一直用,新版多半只是补数据源和修小毛病。

顺带把 GitHub 的通用规则讲清,免得你 Fork 别的项目时踩坑:

  • Fork 不复制 Secrets:原仓库在 Settings 里配的密钥、令牌不会跟到你的 Fork 里,凡是依赖密钥的功能,都要你在自己的 Fork 里重新配。
  • Fork 不复制云端资源:数据库、存储桶、KV 这类在云厂商那边的东西更不会自动生成,要自己建、自己绑。
  • Fork 的 Actions 默认是关闭的:要在 Fork 仓库的 Actions 页手动启用,工作流才会跑。
  • 定时工作流默认不跟跑、还会休眠:带定时任务(cron)的工作流在 Fork 里默认不执行;而且 GitHub 有条规则——公开仓库 60 天没有任何活动,定时工作流会被自动停用,靠仓库里留「心跳保活」提交或者手动点一下启用才能续上。

本站没有定时任务、不依赖任何密钥和云端资源,所以上面四条对它基本都不适用;但你以后 Fork 任何带后端、带定时更新的项目,这四条就是它「没有原站那种全自动」的根本原因,也是部署时要你自己补齐的清单。需不需要加?对本站:不用加任何东西,开箱即全功能。对带自动更新的项目:照着清单把 Secrets、云端资源、Actions 开关、心跳保活补上,你的那份也能全自动,只是要你亲手配一次。

六、出问题怎么办

先查哪(三步定位)

  1. 先看站点能不能打开:打不开、或者打开是旧版页面,先去 Cloudflare 后台看这个 Pages 项目的部署状态——最新一次部署是不是成功,绑域名的话自定义域状态是不是正常。十有八九问题在这一层。
  2. 站点能开、某项检测没结果:在浏览器里按 F12 打开控制台(手机上可先跳过),看是不是某个第三方接口请求报错。本站所有数据都来自公开免费接口,单个接口抽风只影响对应那一两项,其他项照常出结果,属正常降级,过一会儿重新点「一键体检」往往就好了。
  3. 口径拿不准:回仓库 README 的「评分口径」「常见问题」「已知边界与路线图」三节查,分数怎么算、什么情况是推测分、哪些事纯前端做不到,都写在那儿。

常见故障对照表

现象多半原因在哪改 / 怎么处理
分数旁边标着「本地推测」风险库(proxycheck.io)当时没连上:它免费档按来源 IP 每日限量,共享出口容易被限不用改任何东西,这是自动降级;等一会儿重新体检,风险库恢复了即是真实分
某项检测一直空白或无结果对应第三方接口限流或临时故障不用改;换个时间重测,或对照 README「评分口径」里的数据源清单确认是哪一家接口
IPv6 出口显示「无 IPv6 出口」当前网络没有 IPv6 公网出口(运营商未下发或路由器未开)不是报错,属正常现象;想用 IPv6 去路由器里开
WebRTC 列出了内网 IP网页能读到内网地址是常见行为不用处理;只有它暴露了与出口不一致的公网 IP 才算泄露,页面会单独标红
分数和别的站对不上各家数据库和模型不同,本就没有统一标准不用改;看分档和标签是否一致,差一档以上再多站交叉核对
页面能开但一直是旧版界面浏览器缓存了旧页面强制刷新(Ctrl+F5)再看;仓库里带了防缓存的响应头配置,部署完整时会自动处理
本地打开 index.html 时个别功能受限本地文件协议下个别接口受浏览器限制改用部署好的 https 地址访问,最稳

维修指路

  • 想改分数口径、换数据源、调分档阈值:改的是 index.html 里对应的评分与数据源代码,改之前先读 README「评分口径」一节,那里写清了每个数据来自哪家接口、失败时怎么降级
  • 想知道某个现象是不是已知限制:查 README「已知边界与路线图」,纯前端做不到的事都明说了,别在代码里白找
  • 部署层的问题(打不开、域名不生效、部署失败):查 Cloudflare 后台该 Pages 项目的部署记录与自定义域状态,仓库 README「快速部署」一节有完整图文步骤可对照重走

七、隐私与边界

隐私

  • 纯静态页面,没有任何后端,不收集、不上传你的检测记录
  • 检测历史(最近 10 次)只写在你当前浏览器的 localStorage 里,不进任何服务器、更不会进仓库;换浏览器或清缓存即消失
  • 需要如实说明的是:页面会向数据源接口(归属、风险等公开接口)发查询请求,对方因此能看到你的出口 IP——这是查询本身所必需的,和在任何同类网站查询没有区别
  • 仓库公开可见,但只包含代码;你的数据只存在你自己的浏览器与你自己的 Cloudflare 账号里

已知边界(纯前端做不到,先说清)

  • 真·多地 Ping / MTR 需要服务器探针网络,纯静态页面无解,需要时请用 TcpTest 这类带探针的站
  • TLS 指纹(JA3 / JA4)不做:免费数据源不开放跨域读取,纯前端拿不到
  • 流媒体解锁判定不做:需内容接口,探活只能测可达、不能测解锁
  • 带宽测速测的是你的设备到 Cloudflare 边缘节点的速率,不等于运营商签约带宽,也不是服务器多地测速
  • 风险分依赖第三方免费库,库不可用时自动降级为启发式推测分并明确标注,不糊弄

八、地址汇总

最后:你现在用的这个监测站,和你照这篇部署出来的那一个,用的是同一份代码、跑的是同一套检测。区别只在地址,功能一个不多、一个不少。


「ym 系列」其他文章