文章目录
- nip.io 介绍:零配置通配 DNS,让本地开发拥有“真实域名”
- 什么是 nip.io?
- nip.io 的工作原理
- 支持哪些格式?
- 最基础形式
- 带子域名
- 多级子域
- localhost 替代方案
- 为什么需要 nip.io?
- OAuth 登录
- Cookie Domain
- HTTPS 证书测试
- Kubernetes Ingress
- 本地微服务开发
- 与 hosts 文件相比
- nip.io 与 sslip.io
- 使用示例
- nip.io 的局限性
- 并非正式生产方案
- 依赖第三方服务
- 无法自定义域名
- 公网环境暴露 IP
- 适用场景
- 总结
- 补充:nip.io,一个独立的公共服务
- nip.io的服务性质
- 部署情况
- 1. **公共服务部署**
- 2. **基础设施位置**
- 3. **自托管可能性**
- 使用方式
- 总结
nip.io 介绍:零配置通配 DNS,让本地开发拥有“真实域名”
什么是 nip.io?
nip.io是一个基于通配符解析(Wildcard DNS)的免费 DNS 服务。
它最大的特点是:
只需要把 IP 地址写进域名中,就能自动解析到对应服务器,无需购买域名、无需配置 DNS 记录。
例如:
192.168.1.100.nip.io会自动解析到:
192.168.1.100再比如:
app.192.168.1.100.nip.io也会解析到:
192.168.1.100因此,你可以立即获得一个看起来像正式网站的域名:
api.203.0.113.10.nip.io而不需要:
- 注册域名
- 配置 DNS
- 等待 DNS 生效
这也是 nip.io 在开发环境中非常受欢迎的原因。
nip.io 的工作原理
普通 DNS 查询流程:
浏览器 │ 查询 example.com │ DNS服务器 │ 返回 203.0.113.10而 nip.io 的逻辑是:
浏览器 │ 查询 app.203.0.113.10.nip.io │ nip.io DNS │ 提取IP地址 │ 203.0.113.10 │ 直接返回A记录即:
*.IP.nip.io都会动态生成 DNS 响应。
例如:
test.10.0.0.1.nip.io↓
10.0.0.1支持哪些格式?
最基础形式
1.2.3.4.nip.io解析结果:
1.2.3.4带子域名
api.1.2.3.4.nip.io↓
1.2.3.4多级子域
dev.backend.1.2.3.4.nip.io↓
1.2.3.4localhost 替代方案
假设本机 IP:
192.168.31.50可以直接访问:
http://web.192.168.31.50.nip.io无需修改:
/etc/hosts或者:
C:\Windows\System32\drivers\etc\hosts为什么需要 nip.io?
很多软件要求必须使用域名,而不能直接使用 IP。
例如:
OAuth 登录
Google OAuth:
https://callback.example.com通常不允许:
http://192.168.1.5:3000这时候:
auth.192.168.1.5.nip.io就能解决问题。
Cookie Domain
Cookie:
Domain=.example.com不能设置:
Domain=192.168.1.5使用:
app.192.168.1.5.nip.io则可以正常工作。
HTTPS 证书测试
很多证书工具要求:
CN=example.com而不是:
CN=127.0.0.1于是可以:
demo.203.0.113.8.nip.io用于测试 HTTPS。
Kubernetes Ingress
在 Kubernetes 中非常常见。
例如:
spec:rules:-host:api.10.0.0.25.nip.io部署后:
http://api.10.0.0.25.nip.io即可访问集群。
无需:
- Cloudflare
- Route53
- 阿里云 DNS
- 腾讯云 DNS
本地微服务开发
例如:
gateway.192.168.1.100.nip.io auth.192.168.1.100.nip.io user.192.168.1.100.nip.io admin.192.168.1.100.nip.io模拟生产环境:
api.company.com auth.company.com admin.company.com开发体验会更接近线上环境。
与 hosts 文件相比
| 方式 | 优点 | 缺点 |
|---|---|---|
| hosts | 简单 | 每台机器都要配置 |
| DNS 服务商 | 正式环境适用 | 需要购买域名 |
| nip.io | 零配置 | 依赖公网 DNS |
| 本地 DNS Server | 灵活 | 维护成本较高 |
举例:
传统方式:
192.168.1.100 api.local 192.168.1.100 auth.local 192.168.1.100 admin.local需要编辑 hosts。
而 nip.io:
api.192.168.1.100.nip.io auth.192.168.1.100.nip.io admin.192.168.1.100.nip.io无需任何配置。
nip.io 与 sslip.io
如今很多开发者也会选择sslip.io。
例如:
app.192.168.1.10.sslip.io同样会解析到:
192.168.1.10二者功能非常相似。
| 特性 | nip.io | sslip.io |
|---|---|---|
| 自动解析IP | ✓ | ✓ |
| 支持通配子域 | ✓ | ✓ |
| 免费使用 | ✓ | ✓ |
| HTTPS生态 | 一般 | 更活跃 |
| K8s 社区使用 | 很多 | 很多 |
不少 Kubernetes 教程现在会推荐:
sslip.io作为 nip.io 的替代方案。
使用示例
假设你的服务器 IP 为:
203.0.113.25运行:
dockerrun-p80:80 nginx直接访问:
http://203.0.113.25.nip.io或者:
http://www.203.0.113.25.nip.io即可打开页面。
在 Kind 集群中:
host:grafana.127.0.0.1.nip.io访问:
http://grafana.127.0.0.1.nip.io非常方便。
nip.io 的局限性
虽然很好用,但也存在一些限制。
并非正式生产方案
它主要定位:
开发、测试、演示环境
不建议用于生产业务。
依赖第三方服务
所有 DNS 查询都依赖 nip.io。
如果服务异常:
*.nip.io全部失效。
无法自定义域名
只能使用:
*.nip.io不能变成:
example.com公网环境暴露 IP
例如:
myapp.203.0.113.10.nip.io实际上把服务器 IP 直接写进了域名。
存在一定的信息泄露风险。
适用场景
推荐使用 nip.io 的场景:
✅ Kubernetes 本地实验
✅ Kind 集群
✅ Minikube
✅ OAuth 调试
✅ Webhook 测试
✅ HTTPS 验证
✅ Docker 演示环境
✅ 微服务本地开发
不建议使用:
❌ 正式生产网站
❌ 企业长期业务系统
❌ 高可用环境
❌ 对 DNS 可控性要求较高的场景
总结
nip.io 本质上是:
一个能够把域名中的 IP 自动转换成 DNS 解析结果的公共 DNS 服务。
它最大的价值在于:
用零成本、零配置的方式,让开发环境立即拥有真实域名体验。
一句话概括:
nip.io =「把 IP 地址包装成域名」的免费动态 DNS 服务。
对于 Kubernetes、Docker、本地微服务开发以及 OAuth 调试来说,它是一个非常实用的小工具。
补充:nip.io,一个独立的公共服务
nip.io的服务性质
nip.io是一个已经部署好的公共服务,由Exentrique Solutions公司运营。它不是一个需要用户自行部署的开源项目,而是一个在线DNS服务。
部署情况
1.公共服务部署
- nip.io作为一个公共服务,已经在全球范围内部署了DNS服务器
- 用户无需自行部署,直接使用其提供的域名服务即可
- 服务格式为:
<ip-address>.nip.io或<subdomain>.<ip-address>.nip.io
2.基础设施位置
从搜索结果来看,没有公开的官方文档详细说明其服务器的具体物理位置。但根据其服务性质可以推断:
- 作为全球性的DNS服务,其服务器应该分布在多个地理位置
- 可能使用CDN或分布式DNS架构来提高解析速度和可靠性
- 由于是商业服务,具体的基础设施细节通常不会公开
3.自托管可能性
虽然nip.io本身是公共服务,但搜索结果显示:
- 存在相关的配置文件(如backend.conf),表明技术上可以自建类似服务
- 有一些开源项目或教程指导如何搭建类似的DNS服务
- 但这与官方的nip.io服务是不同的
使用方式
nip.io作为已部署的服务,用户可以直接使用:
# 示例用法192.168.1.100.nip.io# 解析到192.168.1.100app.192.168.1.100.nip.io# 也解析到192.168.1.100总结
nip.io是一个已经部署好的、可直接使用的DNS公共服务,不需要用户自行部署。它由Exentrique Solutions公司维护,服务器基础设施的具体位置和详细配置属于商业机密,未对外公开。对于大多数开发者来说,只需将其作为现成的服务使用即可,无需关心其底层部署细节。
如果需要自建类似服务,可以寻找开源的DNS工具或参考相关技术文档,但这将是一个不同的解决方案,而非官方的nip.io服务。