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 极度纯净、15–25 纯净、25–40 中性、40–50 轻微风险、50–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,存档、发人复核都方便


三、特点与优点
- 纯静态单文件:全部功能就一个
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 出来的那份仓库。

第 2 步:构建设置照着填
框架预设选「无」、构建命令留空、输出目录填 /,点「保存并部署」。约 1 分钟后你会拿到一个 xxx.pages.dev 地址,打开能自动开始检测,就是部署成功了。
第 3 步(可选):绑上自己的域名
回到这个 Pages 项目 →「自定义域」→「设置自定义域」,填你想要的子域名。域名 DNS 已经托管在 Cloudflare 的,会自动加记录、自动签证书,什么都不用管;不在 CF 托管的,按页面提示去你的域名商那边手动加一条 CNAME,指向你的 xxx.pages.dev 地址即可。
方式 B:Pages 直接上传
嫌连 Git 授权麻烦的,也可以在 Cloudflare 后台「创建 → Pages → 上传资产」,把 index.html 打包成 zip 拖上去,立刻就能用。代价是每次更新都要手动重新上传一遍。
方式 C:本地打开
把 index.html 存到电脑或手机上,用浏览器直接打开也能测。只是个别接口在本地文件协议下可能受限,部署成 https 地址后最稳。
五、和原站的区别:Fork 部署后差在哪
先给结论:这一篇的项目是个例外——Fork 出来的站,功能和原站完全一致,不缺任何东西。 原因要讲清,因为它和很多项目不一样:
本站是纯静态单文件,全部检测都是在访客的浏览器里、打开页面的那一刻现跑的,用的是公开免费接口。页面代码就是全部功能,服务器端没有任何数据加工、没有任何定时更新任务。所以你 Fork 一份代码部署起来,测出来的东西和原站一模一样,不存在「原站有自动更新、我这份没有」这回事——这份代码里压根没有需要更新的数据。
真正的差别只有两条:
- 地址不一样:你没有原站那个自定义域名,用的是自己的
xxx.pages.dev地址,或者按上面第 3 步绑上你自己的域名。就这一条区别,和功能无关。 - 原仓库以后发新版,你的 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 开关、心跳保活补上,你的那份也能全自动,只是要你亲手配一次。
六、出问题怎么办
先查哪(三步定位)
- 先看站点能不能打开:打不开、或者打开是旧版页面,先去 Cloudflare 后台看这个 Pages 项目的部署状态——最新一次部署是不是成功,绑域名的话自定义域状态是不是正常。十有八九问题在这一层。
- 站点能开、某项检测没结果:在浏览器里按 F12 打开控制台(手机上可先跳过),看是不是某个第三方接口请求报错。本站所有数据都来自公开免费接口,单个接口抽风只影响对应那一两项,其他项照常出结果,属正常降级,过一会儿重新点「一键体检」往往就好了。
- 口径拿不准:回仓库 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 边缘节点的速率,不等于运营商签约带宽,也不是服务器多地测速
- 风险分依赖第三方免费库,库不可用时自动降级为启发式推测分并明确标注,不糊弄
八、地址汇总
- 本站仓库:github.com/YiMing918/ym-ip(完整功能说明、评分口径、常见问题都在仓库 README 里)
最后:你现在用的这个监测站,和你照这篇部署出来的那一个,用的是同一份代码、跑的是同一套检测。区别只在地址,功能一个不多、一个不少。
还没有评论,来抢沙发。