黄志安 e5892f0023 !1 缓存空间大小从配置中取
* 缓存空间大小从配置中取
2019-10-24 01:08:23 +08:00
2019-05-12 22:28:46 +08:00
2019-04-27 21:21:26 +08:00
2019-04-27 21:21:26 +08:00
2019-05-14 10:56:22 +08:00
2019-05-14 13:30:10 +08:00

DNS-Cheater

DNS服务器Domain Name Server域名解析服务器互联网上相互通信使用的是IP但是IP是又长又臭又难记所以创造了域名来解决IP难写难记的问题记一个g.cn比203.208.50.127强过不知多少倍了。有了域名也就有了基于最上层的分布式的可能一个域名可以对应于多个IP比如根据来路IP的地区来决定应答服务器的IP这就是CDN内容分发网络再比如基于来路IP的线路比如联通或是移动或是电信来应答一个最佳线路的服务器IP这就是线路优化。更常见的是可以通过轮循或其它规则给出应答的IP做最顶层的负载均衡。

本项目实现了一个功能较全面的DNS服务器可以通过WEB端的管理界面达到如下目的

  1. 基本的DNS服务器本服务器实现将通过询问上游DNS服务器来完成对规则外域名的解析应答通过缓存共用能够有效的加快域名解析的速度。
  2. 企业内部云的DNS支持实现内部域名的解析、CDN模拟、域名层面的负载均衡。
  3. 上网行为控制通过将指定域名的IP解析到127.0.0.1等不可达或不正确的IP上来实现网站屏蔽。
  4. 内部带宽控制通过将指定域名的IP解析到一个HTTP代理缓存服务器上实现流量复用。

启动

  1. 查看并修改好配置文件application.properties,按配置文件里的库名和用户名密码创建好,或使用现成的数据库账号,使用/doc/tables.sql数据库建表脚本创建好相应的表
  2. 配置文件里的dns.upstream.server.address为上游DNS服务器地址将为本DNS服务器提供递归解析能力当遇到本地解析规则所不支持的域名时将向上游DNS服务器进行查询并回应。
  3. 使用mvn package打包后直接用java -jar original-dns-cheater-1.0-SNAPSHOT.jar启动。
  4. 或是直接在IDE中启动主入口程序cn.org.hentai.dns.app.DNSCheaterAPP
  5. 此时可以登陆网页管理控制台,默认为http://localhost(如果你是本机运行的话)。
  6. 管理控制台的账号在tables.sql里已经准备好了一个,用户名为admin,密码为123456

nslookup测试工具的使用

  1. 打开命令提示符或是直接运行cmd
  2. 输入nslookup进入DNS测试工具的命令行交互环境。可以输入set d2来启用高级调试模式,输入help查看更多帮助)
  3. 输入server {我的IP}来将DNS服务器设置为你所运行的主机的IP地址。
  4. 输入www.baidu.com查看响应的IP。此时已经可以在WEB管理控制台下的服务器监控下看到实时的请求统计了。

界面截图

实时监控

DNS条目管理

添加新解析规则

Description
Java实现的DNS服务器,可通过WEB管理界面随意设置灵活的解析规则。
Readme 4.7 MiB
Languages
JavaScript 96.1%
Java 2.3%
CSS 1.1%
Fluent 0.5%