发现
命令行工具开发者工具
sslip.io:内嵌 IP 的 DNS 服务器
用 Go 编写的 DNS 服务器,把内嵌 IP 的域名(如 127-0-0-1.sslip.io)解析成对应地址。
- 浏览
- 8
- 访问
- 0
- 下载
- 0
- 版本
- v6.1.1
- 平台
- Linux、macOS
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。
详细介绍
项目简介
sslip.io 是一个用 Go 编写的 DNS 服务器,它能把「把 IP 地址写进域名」的查询解析为对应 IP。例如 127-0-0-1.sslip.io 会解析到 127.0.0.1。它的灵感来自已经停止服务的 xip.io。
README 面向开发者,讲如何自己搭建;如果只想直接使用现成服务,作者建议参考 nip.io 网站。
主要功能
- 解析内嵌 IP 地址的域名,返回对应的 A / AAAA 记录。
- 同时监听 UDP 与 TCP;对所有域名返回同一个 SOA 记录;不提供 SRV 记录。
- 通过命令行参数自定义记录:
-ns设置 NS 记录,格式为domain=nameserver;域名为.时对每次查询都返回该 NS。-a/-aaaa设置 A / AAAA 记录,如-a=ns1.example.com=10.8.8.8。-soa设置 SOA 记录,格式为mname,rname,serial,refresh,retry,expire,minimum。-mx、-txt、-cname分别设置 MX、TXT、CNAME 记录。
-ptr-domain指定反向解析(PTR)使用的域名,例如dig -x 127.0.0.1会得到127-0-0-1.ip.example.com。-public=false只解析私有地址,避免有人用公网 IP 拼出你的子域名去申请证书做钓鱼。-port更换监听端口(默认 53),便于非特权用户运行;-quiet关闭逐条响应日志。-blocklistURL指定屏蔽列表地址,默认从仓库的etc/blocklist.txt下载;下载失败只记录日志,不影响服务。-dnstap开启 dnstap 日志,参数可以是 Unix socket 路径或 TCP 地址。
安装与使用
从源码运行(绑定 53 端口需要 sudo):
git clone https://github.com/cunnie/sslip.io.git
cd sslip.io
go mod tidy
sudo go run .
另开一个终端验证:
dig @localhost 192.168.0.1.sslip.io +short
应返回 192.168.0.1。
用 Docker 运行官方镜像 cunnie/sslip.io-dns-server,把端口映射到 5553 以便免特权运行:
docker run -it --rm -p 5553:53/udp cunnie/sslip.io-dns-server
该镜像支持 x86_64 与 ARM64(AWS Graviton、Apple M1–M6)。
自建私有部署时,可以用 -ns、-a、-aaaa、-soa、-ptr-domain 组合出自己的命名空间,例如把某个子域委托到自建的两台 nameserver 上。
注意事项
- 这个服务器不是通用递归解析器,查不了 google.com。不要把它配置成客户端的 DNS 服务器。
- 绑定 53 端口需要特权,非 root 运行请用
-port换成高位端口。 - 如果需要防止公网 IP 被用于钓鱼,记得设置
-public=false。
本作品整理自 GitHub 开源项目 cunnie/sslip.io,原作者 @cunnie,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v6.1.1当前版本
新增并改进 dnstap 子系统:写不进去时丢弃帧而不阻塞 DNS,断线后每分钟重连,多帧打包减少开销,只记录响应段;修复 `-cname` 下查询 TXT 记录时错误返回空 TXT 的问题。
评论