IP 工具箱:纯 Node.js 零依赖的在线检测工具
背景与原理
简单说,这是一个跑在浏览器里的 IP 工具箱,用纯 Node.js 内置模块(http、https、dns、net、fs、url)写的,没有任何 npm 依赖,clone 下来就能跑。
它解决的是我自己来回切换多个在线工具的麻烦:想查本机 IP 要看一个站,查归属地要看另一个,查 DNS 污染又得开第三个。与其到处找,不如写一个把这些都收在一起的。
目前提供的功能:
- 本机 IP 检测 — 本地 IP、公网 IPv4/IPv6、内网判断
- IP 归属地 — 通过第三方 API 获取城市级位置
- IP 纯净度 — 识别 IP 是不是代理 / VPN / 数据中心
- 代理分流识别 — 对比国内外双栈 IP,看出科学上网分流模式
- 端口检测 — 检测 80/443/8080/8443 远程可达性
- 上传 / 下载测速 — 浏览器端直接测
- DNS 解析(DoH) — 用多家独立 DoH 解析器对比结果,识别 DNS 污染(仅限 GitHub 相关域名)
- 国外出口 IP 污染度 — 检测科学上网场景下出口 IP 的纯净度与风险
- GitHub 优选 IP — 每 4 小时自动扫描 GitHub 各服务域名,选出延迟最低的可达 IP
项目地址:https://gitee.com/knight3fax/ip-toolkit
部署
环境要求
Node.js >= 20(README 里推荐 v24)。
启动
1 | cd /root/ip-checker |
默认监听 127.0.0.1:3001。
systemd 保活
1 | [Unit] |
1 | systemctl daemon-reload |
nginx 反向代理
默认只监听 127.0.0.1,要外网访问就得配个反代:
1 | server { |
这里容易踩坑:不改反代就没法从外网访问,因为服务默认绑在回环地址上;另外 DoH 污染对比的功能只针对 GitHub 相关域名,不是所有域名都能用。
总结
如果你经常排查网络问题、折腾代理,或者想要一个部署起来最省事的自用检测站,这个工具挺合适。零依赖让它几乎可以在任何低配机器上跑,也不用担心 npm 依赖过期。
- 标题: IP 工具箱:纯 Node.js 零依赖的在线检测工具
- 作者: 番星
- 创建于 : 2026-08-22 10:15:00
- 更新于 : 2026-08-25 16:45:08
- 链接: https://xingbox.me/ip-toolkit-ip-toolbox/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。