Skip to content

介绍

GOGDNS 是一款使用 Go 语言构建的轻量级私有 DNS 服务器软件。它广泛支持 UDP、TCP 及加密的 DoT、DoH、DoQ 协议,并通过智能污染检测机制自动规避干扰,选择可信赖的上游 DNS 来保证解析结果的准确性。其内置的高效缓存能显著提升重复查询的响应速度。

该服务器还具备智能优化能力,可对返回的 IP 地址进行排序(例如基于延迟或地理位置),优先提供最快的访问路径。此外,域名黑名单功能让您轻松屏蔽不需要的网站,实现更灵活的访问控制。GOGDNS 旨在为您提供更快速、更安全且管理便捷的 DNS 解析服务。

多平台部署:

  • Windows、Linux 操作系统
  • ARM架构设备(如树莓派)
  • Docker容器化环境

支持的协议:

功能支持
UDP
TCP
DoT
DoH
DoH3
DoQ

支持的上游DNS类型:

功能支持
UDP
TCP
DoT
DoH
DoH3
DoQ

支持的扩展:

功能支持
ECS
DNSSEC

项目背景

  • 构建更坚固的DNS污染防御体系:

    在复杂的网络环境中,DNS污染(劫持)已成为普遍存在的威胁,严重损害了用户访问的准确性和隐私安全。传统的单一DNS解析方式极易受到干扰,导致用户被引导至错误或恶意的地址。GOGDNS项目的核心驱动力之一,就是构建一套多维度、更主动的防御机制。它通过实时检测DNS响应的一致性(污染检测逻辑),智能识别异常;并在此基础上,能够根据污染状态动态地、策略性地分流查询请求至不同的、更可靠的上游DNS服务器(如国内外可信的公共DNS或自建纯净DNS)。这种机制显著提升了DNS解析的可靠性,确保用户即使在污染严重的网络环境下也能获得正确的域名解析结果,有效抵御干扰和欺骗。

  • 优化CDN回源效率与访问体验:

    现代互联网服务高度依赖内容分发网络(CDN)来加速内容访问。然而,用户本地DNS返回的IP地址集合,并不总是能提供最优的CDN节点,尤其是在需要回源获取内容时,选择距离源站更近或网络质量更佳的节点至关重要。GOGDNS致力于解决这一痛点。它在返回最终DNS结果前,会对解析得到的多个IP地址进行智能排序和优化。支持基于实际网络延迟(Ping检测)或地理距离的排序策略。通过优先返回延迟最低或地理位置最接近源站的IP地址,GOGDNS能够有效缩短CDN回源路径,减少延迟和抖动,从而显著提升动态内容加载、文件下载等依赖回源场景的速度和用户体验,使CDN的优势得到更充分的发挥。

  • 实现网络内DNS活动的精细监控与分析:

    对网络中的DNS流量进行深度洞察是进行网络管理、安全分析和性能优化的基础。GOGDNS提供了超越基础解析功能的细粒度监测能力。它完整记录每一次DNS查询的历史信息,包括请求的域名、类型、来源、时间戳、响应结果以及关键的污染检测状态标记等。这种详尽的日志记录,结合其高效的缓存(包括乐观缓存)机制所积累的数据,为网络管理员提供了强大的分析工具。管理员可以清晰地掌握网络内的域名访问模式、识别潜在的恶意域名请求、分析DNS污染发生的频率和特征、评估不同上游DNS的性能表现,并据此进行更精准的访问控制策略制定(如黑名单管理)和网络性能调优,从而提升整个网络的可观测性和管理效率。

特性

  1. 多种上游DNS服务器支持
    提供全方位的 DNS 解析支持,包括传统的 UDP/TCP 端口查询,以及加密的 DoT、DoH 和 DoQ 协议。独有的 CTCP 模式,能够自动防止 DNS 污染,您将始终获得真实、准确的域名解析结果。

  2. CDN自动回源
    通过匹配 CDN 边缘节点 IP 库,将用户查询动态解析至最优接入点,显著提升访问速度。

  3. 综合结果排序
    智能优化返回的 IP 地址顺序。系统综合考量ECS、物理位置及 Ping 值,确保列表顶部的 IP 即为当前访问速度最优的选择,直达最佳节点。

  4. 自动鉴别目标不可达 基于实时 TLS 握手状态,自动判定目标服务器的网络可达性,使用用户配置的外部代理链或通过服务端内建的轻量级代理协议进行加密中继。

  5. 动态TTL优化引擎
    TTL时间设置过短会导致对上游DNS的频繁查询,过长会导致查询信息更新不及时,通过内建的自动权重机制动态调节缓存周期,根治时效性与资源消耗的矛盾。