67 Star 380 Fork 171

matrixy / dns-cheater

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

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条目管理

添加新解析规则

Copyright [2019] [matrixy] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

Java实现的DNS服务器,可通过WEB管理界面随意设置灵活的解析规则。 展开 收起
Java 等 4 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/matrixy/dns-cheater.git
git@gitee.com:matrixy/dns-cheater.git
matrixy
dns-cheater
dns-cheater
master

搜索帮助