DNS服務器,Domain Name Server,域名解析服務器,互聯網上相互通信使用的是IP,但是IP是又長又臭又難記,所以創造了域名來解決IP難寫難記的問題,記一個g.cn比203.208.50.127強過不知多少倍了。有了域名,也就有了基于最上層的分布式的可能,一個域名,可以對應于多個IP,比如根據來路IP的地區來決定應答服務器的IP,這就是CDN(內容分發網絡),再比如基于來路IP的線路,比如聯通或是移動或是電信,來應答一個最佳線路的服務器IP,這就是線路優化。更常見的是可以通過輪循或其它規則給出應答的IP,做最頂層的負載均衡。
本項目實現了一個功能較全面的DNS服務器,可以通過WEB端的管理界面,達到如下目的:
- 基本的DNS服務器,本服務器實現將通過詢問上游DNS服務器來完成對規則外域名的解析應答,通過緩存共用,能夠有效的加快域名解析的速度。
- 企業內部云的DNS支持,實現內部域名的解析、CDN模擬、域名層面的負載均衡。
- 上網行為控制,通過將指定域名的IP解析到127.0.0.1等不可達或不正確的IP上來實現網站屏蔽。
- 內部帶寬控制,通過將指定域名的IP解析到一個HTTP代理緩存服務器上,實現流量復用。
界面展示:



部署教程:
- 查看并修改好配置文件application.properties,按配置文件里的庫名和用戶名密碼創建好,或使用現成的數據庫賬號,使用/doc/tables.sql數據庫建表腳本創建好相應的表
- 配置文件里的dns.upstream.server.address為上游DNS服務器地址,將為本DNS服務器提供遞歸解析能力,當遇到本地解析規則所不支持的域名時,將向上游DNS服務器進行查詢并回應。
- 使用mvn package打包后直接用java -jar original-dns-cheater-1.0-SNAPSHOT.jar啟動。
- 或是直接在IDE中啟動主入口程序cn.org.hentai.dns.app.DNSCheaterAPP。
- 此時可以登陸網頁管理控制臺,默認為http://localhost(如果你是本機運行的話)。
- 管理控制臺的賬號在tables.sql里已經準備好了一個,用戶名為admin,密碼為123456。
關注+轉發+私信“DNS”,自動發送下載地址,謝謝支持