因为之前工作需要,写了一个DNS服务器,后来维护了半年,公司内部也一直在使用,现在比较稳定了,拿出来跟大家分享。
主要有DNS代理和缓存功能,也可以用hosts风格自定义域名,之前遇到的DNS服务器配置起来都比较复杂,实际上我们自己搭建大多数都是内网或者自己用,根本用不着。我这个默认代理了google的DNS 8.8.8.8,启动起来就能用了,不需要什么配置。只支持A记录配置,不过内部DNS算是足够了。
设计方面,当做一个web服务器来写的,也分了connector、container什么的,connector用的是多线程reactor。
缓存用了EhCache,性能还是比较好的。这个程序在我的笔记本上跑到50000qps,超过了BIND和pdnsd。
项目地址:
https://github.com/code4craft/blackhole
安装可以用脚本:
curl http://code4craft.github.io/blackhole/install.sh | sh
对Java底层有兴趣的可以看看!
分享到:
相关推荐
配置:把源代码导入Eclipse中,运行DNSServer.java文件。然后把局域网内计算机系统的DNS服务器地址改为运行DNSServer.java的主机地址。这样就配置完成了。 源代码中还包含了DNS查询包和应答包的解析,非常利于学习。
1. **DNS(Domain Name System)域名系统**:DNS是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,允许用户通过域名访问网站。在Java中,我们可以通过`java.net.DNS`类来与DNS服务器进行交互,...
基于java的开发源码-DNS服务器 Eagle DNS.zip 基于java的开发源码-DNS服务器 Eagle DNS.zip 基于java的开发源码-DNS服务器 Eagle DNS.zip 基于java的开发源码-DNS服务器 Eagle DNS.zip 基于java的开发源码-DNS服务器...
java编写的简单DNS服务器代码,可用于二次开发,或者作为测试
标题中的“本地DNS服务器模拟”指的是使用编程语言(在这种情况下是Java)来创建一个本地的域名系统(DNS)服务器,该服务器可以模仿真实的DNS服务器工作流程,并与上级DNS服务器进行交互。DNS是互联网的一项核心...
java资源DNS服务器 Eagle DNS提取方式是百度网盘分享地址
JAVA源码DNS服务器EagleDNS
总结来说,Java提供了一种方便的方式来执行DNS域名解析,而动态DNS更新则需要服务器端的配合,通常是通过一个接收更新请求的程序,以及正确配置的DNS服务器。这样的机制对于拥有动态IP的家庭服务器或者需要从外部...
Eagle DNS作为一个用Java语言编写的DNS服务器,具有以下特点: 1. **跨平台性**:由于Java的“一次编写,到处运行”特性,Eagle DNS可以在任何支持Java的平台上运行,包括Windows、Linux、macOS等操作系统。 2. **...
总的来说,Eagle DNS是Java技术在DNS服务领域的一个应用实例,它展示了Java语言在网络服务开发中的灵活性和实用性。无论是开发还是运维,深入理解和使用Eagle DNS都能提升我们在IT领域的专业技能。
设计一个DNS服务器程序,读入“域名-IP地址”对照表,当客户端查询域名对应的IP地址时,用域名检索该对照表,三种检索结果: 检索结果为ip地址0.0.0.0,则向客户端返回“域名不存在”的报错消息(不良网站拦截功能)...
Eagle DNS作为一款DNS服务器,它的核心功能就是执行这个转化过程。 **2. Java在DNS服务器开发中的应用** Java以其跨平台的特性,成为开发服务器软件的理想选择。Eagle DNS利用Java的网络编程库,如Socket和...
Eagle DNS是一款基于Java开发的开源DNS服务器软件,它的源码为我们提供了深入理解DNS系统工作原理和Java编程实践的机会。本文将围绕Eagle DNS的源码进行深入解析,涵盖DNS协议、Java网络编程以及源码架构等多个方面...
Eagle DNS是一款基于Java开发的DNS(Domain Name System)服务器软件。这个压缩包包含了实现Eagle DNS功能的源代码,对于学习和理解DNS服务器...同时,这也是一个实践Java并发编程、网络编程和服务器软件设计的好机会。
Eagle DNS是一款基于Java开发的开源DNS服务器软件,它的设计目标是提供高效、稳定且易于配置的服务。在本文中,我们将深入探讨Eagle DNS的核心功能、工作原理以及如何利用Java编程语言来理解和实现DNS服务器。 首先...
BlackHole是一个Java编写的DNS服务器,它可以进行DNS缓存,也支持自定义域名配置,并可以防止DNS污染。比起老牌的DNS软件BIND、pdnsd,BlackHole功能比较简单,但是更容易使用,性能也更好。BlackHole的功能包括: ...
在本项目中,我们看到的是一个基于JAVA实现的DNS relay服务,这是北京邮电大学计算机网络课程设计的一部分。这个课程设计旨在让学生深入理解DNS的工作原理,并通过实际编程来增强对网络协议的掌握。 DNS(Domain ...
1. 域名解析:当用户输入一个域名时,DNS服务器会将这个域名转换为对应的IP地址,以便网络设备进行通信。 2. 分布式数据库:DNS由全球范围内的众多服务器组成,每个服务器负责一部分区域的域名解析,这种分布式设计...
- `bnd.jar`:可能是一个构建工具或依赖管理工具的jar文件,用于打包和构建项目。 - `LICENSE`:定义了该项目的许可协议,规定了使用、分发和修改代码的规则。 - `Makefile`:自动化构建脚本,通常用于Unix/Linux...
【l3dns:用Java编写的DNS服务器】 l3dns是一个用Java语言开发的DNS(Domain Name System)服务器,它提供了对于DNS协议的全面支持,包括解析查询、处理响应以及维护DNS记录。DNS是互联网的核心服务之一,它将人类可...