直接抛出核心痛点
想在公司内部或个人项目里快速检测自己的 IP、网络延迟、DNS 泄漏……但每次都要跑一堆网站、手动拼命复制粘贴结果,浪费时间又不可靠。这篇文章教你用 MyIP 一键搞定所有这些需求,省去跑十几个工具的麻烦。

大家都觉得的常见误区
- 认为只要打开
whatismyip.com就能得到完整的网络信息。 - 以为 V屁嗯 开启后 DNS 一定安全,实际上很多 V屁嗯 会把 DNS 请求泄露到本地运营商。
- 以为用
ping一两个节点就能判断全球网络状态。
其实 MyIP 能把这些事儿一次性解决
MyIP 是一个基于 Express+Vue 的全能 IP 工具箱,内部整合了多家公开数据源(MaxMind GeoLite2、IPInfo、IPAPI、CAIDA 等),从本机 IP、IPv4/IPv6、WebRTC ICE、DNS 泄漏、站点可用性、全球延迟、MTR 路由、Whois 甚至 MAC 查询都能在同一个页面查看。
为什么它比单独工具更靠谱
- 多源汇聚:本机 IP 会同时向多个公共服务请求,取最快返回的结果,避免单点失效。
- 本地化部署:可以通过 Docker 一键启动,内部数据(如 GeoLite2)可以自动更新,离线环境下也能自行塞入
.mmdb文件。 - 安全防护:内置速率限制、黑名单日志、允许域名白名单,防止 API 被滥用。
- 可视化与快捷键:全页面响应式、暗黑模式、PWA,支持
?呼出快捷键,让你像玩游戏一样快速切换功能。

实战经验:部署踩坑记
我在公司内部服务器上部署 MyIP 时,最常碰到两类问题:
- GeoLite2 没自动下载:Docker 镜像默认不带数据库,必须在启动命令里提供
MAXMIND_ACCOUNT_ID、MAXMIND_LICENSE_KEY、MAXMIND_AUTO_UPDATE=true,否则页面上只会显示 IP,但缺少国家/地区徽标,日志里会一直报 503。 - 防火墙端口未放行:默认前端 18966、后端 11966,如果服务器只打开 80/443,外部根本访问不到。解决办法是使用
docker run -p 80:18966映射到常用端口,或者在安全组里放行 18966。
以上两个问题在官方文档里都有提到,但我曾因环境变量写成全大写 maxmind_account_id 而导致启动失败,排查日志时才发现。
和同类工具的对比
| 功能 | MyIP | ipinfo.io(网页版) | Speedtest CLI |
|---|---|---|---|
| 本机 IP 多源显示 | ✅ | ❌ | ❌ |
| WebRTC 检测 | ✅ | ❌ | ❌ |
| DNS 泄漏 | ✅ | ❌ | ❌ |
| 全球延迟+MTR | ✅ | ❌ | ✅(单点) |
| 站点可用性检查 | ✅ | ❌ | ❌ |
| 自建部署 | ✅(Docker) | ❌ | ❌ |
可以看到,MyIP 把多项网络诊断功能整合进一个 UI,省掉了切换工具的时间。
进阶使用小技巧
- 利用环境变量
ALLOWED_DOMAINS限定哪些前端来源可以调用 API,防止外部脚本滥用。 - 开启
SECURITY_RATE_LIMIT并把日志写到logs/blacklist-ip.log,在企业内部可以快速定位异常流量。 - 在
.env中加入VITE_GOOGLE_ANALYTICS_ID,配合 GA 统计用户功能使用频率,帮助你决定以后要删减哪些不常用的模块。
总结
MyIP 用“一站式”思路把 IP、网络质量、DNS、路由等信息全部搬到本地,可自行部署、可自定义数据源,真正解决了“工具太碎、信息不统一”的痛点。大多数开发者在实际项目里发现,它比把多个脚本拼接在一起更可靠、更易维护。

如果你也想把网络诊断工具收进自己的服务器,赶紧动手部署一个试试吧!有什么使用感受或疑问,欢迎在下方评论区聊一聊。
评论 (0)