Blocky DNS服务器安装与配置指南
blocky 项目地址: https://gitcode.com/gh_mirrors/bl/blocky
项目概述
Blocky是一款高性能的DNS服务器软件,具有广告拦截、查询缓存、DNS-over-TLS/HTTPS支持等特性。本文将详细介绍Blocky的多种安装方式及其配置方法。
安装前准备
配置文件准备
Blocky使用YAML格式的配置文件,支持单文件或多文件配置。以下是一个基础配置示例:
upstreams:
groups:
default:
- 46.182.19.48
- 80.241.218.68
- tcp-tls:fdns1.dismail.de:853
- https://dns.digitale-gesellschaft.ch/dns-query
blocking:
denylists:
ads:
- https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
clientGroupsBlock:
default:
- ads
ports:
dns: 53
http: 4000
此配置包含:
- 上游DNS服务器设置
- 广告拦截列表
- 服务监听端口
安装方式详解
二进制文件安装
- 下载对应系统架构的二进制文件
- 赋予执行权限:
chmod +x blocky
- 运行命令:
./blocky --config config.yml
注意事项:
- 在Linux系统上使用53或953端口时,需执行:
sudo setcap 'cap_net_bind_service=+ep' ./blocky
- 不建议直接使用root权限运行
Docker容器安装
基础Docker运行
docker run --name blocky \
-v /path/to/config.yml:/app/config.yml \
-p 4000:4000 -p 53:53/udp \
spx01/blocky
Docker Compose部署
创建docker-compose.yml
文件:
version: "2.1"
services:
blocky:
image: spx01/blocky
container_name: blocky
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "4000:4000/tcp"
environment:
- TZ=Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro
- ./config.yml:/app/config.yml:ro
启动命令:
docker-compose up -d
高级配置示例
version: "2.1"
services:
blocky:
image: spx01/blocky
volumes:
- ./config.yml:/app/config.yml:ro
- queryLogs:/logs
- ./denylists:/app/denylists/
- ./allowlists:/app/allowlists/
volumes:
queryLogs:
driver: local
driver_opts:
type: cifs
o: username=USER,password=PASSWORD,rw
device: //NAS_HOSTNAME/blocky
此配置实现了:
- 日志存储到网络共享
- 自定义黑白名单目录
- 配置文件只读挂载
多配置文件支持
对于复杂环境,可将配置拆分到多个YAML文件:
./blocky --config ./config/
注意:相同配置项出现在多个文件中会导致启动失败。
系统集成方案
Linux发行版支持
- Arch Linux:通过AUR仓库安装
- Alpine Linux:官方仓库提供
- Gentoo:启用GURU仓库后安装
- NixOS:提供专用模块
其他平台
- macOS:通过Homebrew安装
- FreeBSD:官方ports支持
- TrueNAS SCALE:通过TrueCharts应用商店安装
性能优化建议
- 资源分配:根据查询量适当调整容器资源限制
- 缓存配置:合理设置缓存大小和TTL
- 日志轮转:定期清理查询日志避免磁盘空间不足
- 网络优化:在高延迟网络环境下考虑使用DNS-over-TLS/HTTPS
常见问题排查
- 端口冲突:确保53端口未被systemd-resolved等服务占用
- 权限问题:检查容器或二进制文件的网络权限
- 配置错误:使用
--logLevel debug
参数获取详细日志 - 上游DNS不可达:配置备用上游服务器提高可靠性
通过本文介绍的各种安装方式,您可以根据实际环境需求选择最适合的Blocky部署方案。建议生产环境使用Docker部署,便于管理和维护。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考