Blocky
Blocky
软件描述
Blocky 是一个用 Go 语言编写的本地网络 DNS 代理和广告拦截器,具有以下特性:
官方网站
访问软件的官方网站了解更多信息
0xerr0r.github.io
什么是 Blocky?
Blocky 是一款使用 Go 语言编写的本地网络 DNS 代理和广告拦截工具,具备以下功能:
拦截功能——支持通过外部列表(广告拦截、恶意软件等)进行 DNS 查询拦截,并支持白名单机制。
按客户端组(如儿童设备、智能家居设备等)定义允许/禁止列表。
定期重新加载外部白名单和黑名单。
支持正则表达式。
拦截请求域名、响应的 CNAME(深度 CNAME 检查)以及响应 IP 地址(针对 IP 列表)。
高级 DNS 配置——不仅是一款广告拦截工具。
针对特定域名自定义 DNS 解析。
支持条件式转发至外部 DNS 服务器。
可按客户端组配置上游解析器。
性能优化——提升网络整体速度与性能。
可自定义缓存 DNS 响应结果,从而加快 DNS 解析速度并减少对外部 DNS 的查询次数。
预加载并缓存常用查询。
同时使用多个外部解析器。
内存占用极低。
多种协议支持——支持现代 DNS 协议。
支持 DNS over UDP 和 TCP
支持 DNS over HTTPS(即 DoH)
支持 DNS over TLS(即 DoT)
安全与隐私——保障通信安全。
支持现代 DNS 扩展功能:DNSSEC、eDNS 等。
提供免费可配置的拦截列表——无隐藏过滤机制。
提供 DoH 服务端点。
从配置中随机选择上游解析器——通过将 DNS 流量分散到多个服务商,提升用户隐私。
Blocky 不会收集任何用户数据、遥测数据、统计信息等。
集成功能——支持多种集成方式。
支持 Prometheus 指标监控
提供预配置的 Grafana 看板(支持 Prometheus 和数据库)
以 CSV 格式或 MySQL/MariaDB/PostgreSQL/TimescaleDB 数据库形式记录每日或每个客户端的 DNS 查询日志——便于分析
提供多种 REST API 接口
提供 CLI 工具
简单配置——支持单个或多个 YAML 格式的配置文件
易于维护
易于备份
简单安装与配置——Blocky 专为简单安装设计
无状态(无需数据库、无需临时文件)
提供支持多架构的 Docker 镜像
单个二进制文件
支持 x86-64 和 ARM 架构——可在 Raspberry PI 上正常运行
社区支持的 Helm 图表,用于 Kubernetes 部署