Repolode
0xERR0R

0xERR0R/blocky

一款快速轻量的 DNS 代理,可为整个局域网拦截广告和追踪域名,并支持按客户端分组设置规则。

可替代:Pi-hole

Star
7,053
Fork
316
未关闭 Issue
63
最近提交
前天

这是什么?

Blocky 是一个用 Go 编写的局域网 DNS 代理和广告拦截工具。它会根据外部黑名单和白名单过滤 DNS 查询,并可以为不同客户端分组(如儿童设备、智能家居设备)分别配置名单和上游解析器。拦截既可以针对请求域名,也可以针对响应中的 CNAME 记录或 IP 地址。

除了过滤,Blocky 也可以作为通用 DNS 解析器使用。它支持为指定域名自定义解析结果、条件转发到外部 DNS 服务器,并通过缓存和预取加快重复查询。它支持 UDP、TCP、DoH、DoT、DoQ 和 DoH3 等协议,并可以对上游响应进行 DNSSEC 验证。

配置采用 YAML 文件,服务本身无状态,默认不需要数据库。查询日志可以以 CSV 格式保存,也可以写入 MySQL、MariaDB、PostgreSQL 或 Timescale。项目提供 Prometheus 指标、REST API 和命令行工具,以单一二进制文件和支持多架构的 Docker 镜像发布,可运行于 x86-64、ARM 和 MIPS 设备。

核心功能

  • 01基于外部黑名单和白名单拦截广告与恶意域名,支持正则规则
  • 02可为每个客户端分组配置独立名单和上游解析器
  • 03支持自定义域名解析和条件转发
  • 04缓存 DNS 应答并预取常用查询
  • 05支持 UDP、TCP、DoH、DoT、DoQ 和 DoH3
  • 06提供 Prometheus 指标、Grafana 仪表板,以及 CSV 或数据库形式的查询日志

适用场景

  • 无需在每台设备上安装软件,即可在家庭网络中拦截广告和追踪器
  • 通过独立客户端分组,为儿童设备设置更严格的过滤规则
  • 在树莓派或 OpenWrt 路由器上运行私有 DNS 解析服务
  • 在家庭实验室中用 Prometheus 和 Grafana 监控 DNS 查询情况

快速上手

  1. 1

    阅读完整文档中的安装章节

  2. 2

    按文档安装指南运行 Docker 镜像

使用前须知

  • 需要在你的网络中自行搭建 DNS 服务,配置有一定工作量。
  • 项目主要由一位维护者利用业余时间维护。

收录于专题

标签

常见问题

blocky 是什么?
一款快速轻量的 DNS 代理,可为整个局域网拦截广告和追踪域名,并支持按客户端分组设置规则。 Blocky 是一个用 Go 编写的局域网 DNS 代理和广告拦截工具。它会根据外部黑名单和白名单过滤 DNS 查询,并可以为不同客户端分组(如儿童设备、智能家居设备)分别配置名单和上游解析器。拦截既可以针对请求域名,也可以针对响应中的 CNAME 记录或 IP 地址。
blocky 可以免费使用吗?用的什么许可证?
blocky 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
blocky 还在维护吗?
活跃维护中。blocky 最近一次提交是在 2026年10月23日。
blocky 适合用来做什么?
无需在每台设备上安装软件,即可在家庭网络中拦截广告和追踪器 通过独立客户端分组,为儿童设备设置更严格的过滤规则 在树莓派或 OpenWrt 路由器上运行私有 DNS 解析服务 在家庭实验室中用 Prometheus 和 Grafana 监控 DNS 查询情况
blocky 怎么安装和运行?
阅读完整文档中的安装章节 按文档安装指南运行 Docker 镜像
在哪里获取 blocky?
源代码和安装说明在 GitHub 上:https://github.com/0xERR0R/blocky

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目