跳转到主要内容

仅适用于localhost的简单DNS服务器,带有REST API

项目描述

日期:
2013-09-11
作者:

Doug Winter <doug.winter@isotoma.com>

网站:

http://github.com/yaybu/minidns

描述

一个小型DNS服务,用于支持本地开发。服务器默认监听端口5053。使用iptables将请求从localhost:53转发到localhost:5053。

DNS服务提供递归查询,因此您可以像往常一样继续使用DNS。

然后您可以设置新的授权域名和可用的本地A记录。

例如

$ minidns start
$ host www.example.com
www.example.com has address 93.184.216.119
www.example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7
$ minidns add example.com
$ minidns record example.com a www 192.168.0.10
$ minidns show example.com
www 192.168.0.10
$ host www.example.com
www.example.com has address 192.168.0.10
$ minidns stop
$ host www.example.com
www.example.com has address 93.184.216.119
www.example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7

用法

Usage: minidns [options] command

daemon control commands:
    start  start the minidns server and forward localhost:53 to it
    stop   stop the minidns server and remove iptables rules

zone commands:
    add name  add a new local authoritative zone "name"
    del name  delete the local authoritative zones "name"
    list      list all authoritative zones
    show name list records for the zone "name"

record commands:
    record zone a host [data]   create A record
    record zone del host        delete record

    e.g. record example.com a www 192.168.0.1

Options:
  -h, --help            show this help message and exit
  -c CONFIG, --config=CONFIG
                        path to configuration file
  -n, --no-divert       Do not use iptables to divert port DNS locally

iptables

作为启动和停止的一部分(除非提供-n开关),minidns会对您的iptables nat配置进行一些更改。如果您使用localhost作为您的nameserver(这是一个相当常见的配置),则此操作按原样工作。

发出iptables命令以将localhost:53重定向到minidns端口,以便它可以无缝地控制您的本地DNS。

选择这种机制是为了最不具侵入性的方式来执行此操作,特别是它不会更改/etc中的文件。

API

MiniDNS主要设计用于由自动化部署系统使用,并提供简单的REST API供这些系统使用。

通常,您应该期望在成功请求时以下响应代码

  • GET请求在成功时返回200

  • PUT请求在成功时返回201

  • DELETE请求在成功时返回204

Web端口上可用的资源

根资源:/

GET

返回一行管理的区域列表,每个区域占一行,由n分隔。例如

GET /

200 OK
example.com
foo.com

可能的响应状态码包括

  • 200 成功

域名资源:/domain

GET

返回该域内的记录列表,每行一个记录,用n分隔。例如

GET /example.com

200 OK
A www 192.168.0.1

可能的响应状态码包括

  • 200 成功

  • 404 域未找到。该域未在minidns中创建为权威区域。

PUT

创建此域。例如

PUT /example.com

201 Created

可能的响应状态码包括

  • 201 已创建(成功)

  • 200 域已存在,未更改

DELETE

删除此域。例如

DELETE /example.com

204 No Content

可能的响应状态码包括

  • 204 成功

  • 404 域未找到。该域未在minidns中创建为权威区域。

记录资源:/domain/host

GET

返回记录的值。例如

GET /example.com/www

200 OK
A 192.168.0.1

可能的响应状态码包括

  • 200 成功

  • 404 记录未找到

PUT

创建记录。有效载荷应为类型和数据,用空格分隔。例如

PUT /example.com/www
A 192.168.0.1

201 Created

可能的响应状态码包括

  • 201 已创建(成功)

  • 404 区域未找到

  • 400 请求格式错误。原因消息将提供更多详细信息。

DELETE

删除记录。例如

DELETE /example.com/www

204 No Content

可能的响应状态码包括

  • 204 成功

  • 404 域或记录未找到

配置文件

不需要配置文件 - 提供合理的默认值。请注意,默认情况下使用Google的DNS服务器作为转发器。

如果您愿意,可以提供以下格式的文件

[minidns]
forwarders = 8.8.8.8 8.8.4.4
udp_port = 5053
tcp_port = 5053
www_port = 5080
pidfile = minidns.pid
logfile = minidns.log

LICENSE

版权所有 2013 Isotoma Limited

根据Apache License,版本2.0(“许可证”);除非遵守许可证,否则您不得使用此文件。您可以在以下位置获得许可证副本

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。请参阅许可证了解具体的管理权限和限制。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

minidns-0.3.zip (24.5 kB 查看散列值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面