Open Dig 是基于 bind dig 工具的 dns 解析查询工具,提供简洁的 Web UI 和 RESTful API。其通过多个地区的 edns 解析分析网站在不同地域的解析情况。
该项目源于我的朋友给我推荐网站 https://mdig.cc/,说可以很方便地通过 EDNS 查询网站全球 DNS 解析情况,但想要个开源版的。我想着也挺好玩,也当作理论的验证,就顺手手搓了一个(Cursor 对该项目亦有贡献)。但由于我没有 IP 地址库,所以没有办法检测解析后的 IP 属于哪个地区,部分功能无法在开源版本中实现。
#功能特性
- 🌐 友好的 Web 界面进行 DNS 查询
- 🔧 支持多种 DNS 记录类型(A, AAAA, CNAME, MX, NS, TXT, SOA, PTR, SRV 等)
- 🎯 可指定自定义 DNS 服务器
- 📊 详细的查询结果展示
- 🚀 RESTful API 接口
- ⚙️ 灵活的 dig 工具路径配置
部署方式
#直接部署
-
#
满足环境要求
- Node.js 18+
- 系统已安装 dig 工具(bind9)(安装参考:https://lzj.ac.cn/notes/sre/bind-dM2dd8vF9K)
- 参考"开发指引",编译项目(
npm run build
)后将项目文件拷贝到服务器中(你也可以选择在服务器编译),运行(npm start
)。
Docker 部署
docker 相关内容正在开发中。
Docker Compose 部署
docker 相关内容正在开发中。
API 接口
#**POST /api/dig**
执行 DNS 查询
请求体:
JSON
响应(成功):
JSON
响应(失败):
JSON
**GET /api/status**
获取系统状态和 dig 工具信息
响应:
JSON
项目结构
Text
开发指引
#技术栈
NextJs App(typescript+ scss)
#开发流程
- 克隆项目。
- 安装依赖
npm install
。 - 配置环境变量 复制 .env.example 文件为 .env.local 并配置。具体参考文档中环境相关介绍。
- 运行项目(参考下文脚本)。
脚本
Bash
故障排除
#常见问题
- "Dig tool not available" 错误
- 检查
BIND_PATH
环境变量是否正确 - 确认 dig.exe 文件存在且可执行
- 在 Windows 上确保路径包含
.exe
扩展名
- 检查
- "Invalid option: +json" 错误
- 这是正常现象,程序会自动切换到兼容模式
- 老版本 dig 工具不支持 JSON 输出,但仍能正常工作
- 权限错误
- 确保应用程序有权限执行 dig 工具
- 在 Linux/macOS 上检查文件权限
调试步骤
- 启用调试模式:
DEBUG=true
- 查看控制台输出
- 访问
/api/status
检查 dig 工具状态 - 检查环境变量配置
许可证
MIT License
#贡献
欢迎提交 Issue 和 Pull Request!