gongyongzhuanghu / MyDNS

采用Java语言,基于NIO通信模式,结合MySQL、Redis、RabbitMQ等技术栈编写的一款DNS服务器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MyDNS

一款自实现的DNS服务器

采用Java语言,基于NIO通信模式,结合MySQL、Redis、RabbitMQ等技术栈编写的一款DNS服务器。

实现了DNS数据状态监控、DNS解析配置管理等功能。

结合数据可视化模式,使服务状态数据更清晰、间接、直观地展现在管理者面前。

安装部署

必要软件

后端:

  • Java编程环境、工具IDEA
  • 数据库 MySQL
  • 缓存中间件 Redis
  • 消息中间件 RabbitMQ

前端:

  • vue、vue-cli、vue-router
  • element-ui
  • echarts、DataV
  • axios

安装步骤

后端:

  • clone 该项目到本地
  • IDEA引入并装载此文件,引入完毕对应的依赖包(pom.xml)
  • 修改主配置文件 application.yml,将对应项目软件用户名、密码修改为自己主机持有的
  • 配置完毕开启运行

前端:

  • 项目加载到vscode中,运行 npm install 命令下载所需的插件
  • 修改项目请求的基础地址 request.js中更改 baseUrl=xxxx
  • npm run dev运行起前端项目

注意: 如果采用的是云服务器上的软件,需要进行安全组配置同时防火墙开放部分端口!

测试

本地测试工具测试

使用本地工具 nslookup 进行测试,windows环境下直接打开cmd输入 nslookup命令即可使用。

image-20210601122548723

image-20210601123054751

浏览器在线测试

image-20210601123226026

image-20210601123316067

知乎能够访问,因此数据库中配置规则并没有配置 www.zhihu.com 的映射,会访问更上层的DNS服务器;

image-20210601123517290

百度无法访问,因为数据库中配置 www.baidu.com 映射的IP地址为 192.168.111

界面截图

DNS监控

image-20210601123747790

DNS域名映射管理

image-20210601124009996

image-20210601124144521

使用向导

image-20210601124053948

作者

iStitches

版权说明

CC0

该项目签署了 MIT 授权许可,只可用于学习交流。

鸣谢

该项目参考了 DNSPoddnspod-sr

参考了作者 黄勇萍的论文 根据客户网络应答的DNS服务器设计与实现,文章编号 10.19414/j.cnki.1005-1228.2012.01.005

About

采用Java语言,基于NIO通信模式,结合MySQL、Redis、RabbitMQ等技术栈编写的一款DNS服务器


Languages

Language:Java 50.9%Language:Vue 37.1%Language:JavaScript 11.0%Language:CSS 0.8%Language:HTML 0.1%