unbound-docker配置详解:自定义DNS记录与转发规则
【免费下载链接】unbound-dockerUnbound DNS Server Docker Image项目地址: https://gitcode.com/gh_mirrors/unb/unbound-docker
Unbound DNS Server Docker Image(unbound-docker)是一款轻量级、安全的DNS服务器容器解决方案,能够帮助用户轻松搭建自定义DNS服务,实现本地网络的DNS记录管理和灵活的转发规则配置。通过简单的配置文件修改,即可满足家庭网络、小型办公环境的DNS解析需求。
快速了解unbound-docker
Unbound是一款高效的验证性递归DNS解析器,而unbound-docker则将其封装为Docker镜像,简化了部署和管理流程。该项目提供了多个版本标签(如1.20.0、1.19.3等),每个版本对应独立的Dockerfile和配置文件,确保用户可以选择最适合自己需求的版本。
核心功能特点
- ✅自定义DNS记录:支持A记录、PTR记录和SRV记录配置
- ✅灵活转发规则:可配置不同上游DNS服务器,支持TLS加密
- ✅轻量级部署:通过Docker容器化,资源占用低,部署简单
- ✅多版本支持:从1.6.8到1.20.0等多个版本,满足不同需求
准备工作:安装与基础配置
环境要求
- Docker Engine(1.13.0+)
- Docker Compose(可选,用于更复杂的部署)
- 网络端口:53/tcp和53/udp(DNS服务默认端口)
基础安装命令
使用以下命令快速拉取并启动最新版本的unbound-docker容器:
docker run \ --name=my-unbound \ --detach=true \ --publish=53:53/tcp \ --publish=53:53/udp \ --restart=unless-stopped \ mvance/unbound:latest默认情况下,容器会使用Cloudflare DNS服务器作为上游转发器,并启用TLS加密。如果需要自定义配置,可以通过挂载配置文件的方式实现。
自定义DNS记录配置
unbound-docker支持通过配置文件定义本地网络的DNS记录,主要包括A记录、PTR记录和SRV记录三种类型。
A记录配置(正向解析)
A记录用于将域名解析为IP地址,配置文件为a-records.conf。
配置格式与示例
# A Record local-data: "laptop.local. A 192.168.1.2" local-data: "server.local. A 192.168.1.100" # PTR Record local-data-ptr: "192.168.1.2 laptop.local." local-data-ptr: "192.168.1.100 server.local."应用配置文件
创建自定义的a-records.conf文件后,通过以下命令启动容器并挂载配置:
docker run \ --name my-unbound \ --detach=true \ --publish=53:53/tcp \ --publish=53:53/udp \ --restart=unless-stopped \ --volume $(pwd)/a-records.conf:/opt/unbound/etc/unbound/a-records.conf:ro \ mvance/unbound:latestSRV记录配置(服务定位)
SRV记录用于指定特定服务的位置,包括端口号、优先级等信息,配置文件为srv-records.conf。
配置格式与示例
# SRV records # _service._proto.name. | TTL | class | SRV | priority | weight | port | target. _etcd-server-ssl._tcp.domain.local. 86400 IN SRV 0 10 2380 etcd-0.domain.local. _etcd-server-ssl._tcp.domain.local. 86400 IN SRV 0 10 2380 etcd-1.domain.local. _kerberos._udp.example.com. 86400 IN SRV 10 0 88 kerberos.example.com.应用配置文件
使用以下命令挂载并应用SRV记录配置:
docker run \ --name my-unbound \ --detach=true \ --publish=53:53/tcp \ --publish=53:53/udp \ --restart=unless-stopped \ --volume $(pwd)/srv-records.conf:/opt/unbound/etc/unbound/srv-records.conf:ro \ mvance/unbound:latestDNS转发规则配置
unbound-docker默认使用Cloudflare DNS作为上游服务器,用户可以通过修改forward-records.conf文件自定义转发规则。
转发配置文件格式
forward-zone: # Forward all queries to upstream servers name: "." # Enable TLS for upstream queries forward-tls-upstream: yes # Cloudflare DNS forward-addr: 1.1.1.1@853#cloudflare-dns.com forward-addr: 1.0.0.1@853#cloudflare-dns.com # Alternative: Quad9 DNS # forward-addr: 9.9.9.9@853#dns.quad9.net # forward-addr: 149.112.112.112@853#dns.quad9.net常用上游DNS服务器配置
| DNS服务 | 服务器地址 | 特点 |
|---|---|---|
| Cloudflare | 1.1.1.1@853#cloudflare-dns.com | 速度快,支持TLS |
| Quad9 | 9.9.9.9@853#dns.quad9.net | 注重安全,过滤恶意域名 |
| CleanBrowsing | 185.228.168.168@853#family-filter-dns.cleanbrowsing.org | 家庭过滤,适合儿童环境 |
应用转发配置
docker run \ --name my-unbound \ --detach=true \ --publish=53:53/tcp \ --publish=53:53/udp \ --restart=unless-stopped \ --volume $(pwd)/forward-records.conf:/opt/unbound/etc/unbound/forward-records.conf:ro \ mvance/unbound:latest高级配置:使用Docker Compose
对于需要同时配置多种记录和转发规则的场景,推荐使用Docker Compose进行管理。
docker-compose.yml示例
version: '3' services: unbound: container_name: unbound image: "mvance/unbound:latest" ports: - "53:53/tcp" - "53:53/udp" volumes: - ./forward-records.conf:/opt/unbound/etc/unbound/forward-records.conf:ro - ./a-records.conf:/opt/unbound/etc/unbound/a-records.conf:ro - ./srv-records.conf:/opt/unbound/etc/unbound/srv-records.conf:ro restart: unless-stopped启动与管理
# 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f # 重启服务 docker-compose restart # 停止服务 docker-compose down常见问题与解决方案
1. 端口冲突问题
如果53端口已被其他服务占用,可以修改端口映射:
docker run \ --name my-unbound \ --publish=5353:53/tcp \ --publish=5353:53/udp \ --detach=true \ --restart=unless-stopped \ mvance/unbound:latest2. 配置不生效
确保配置文件路径正确,并且挂载时使用了:ro(只读)权限。修改配置后需要重启容器:
docker restart my-unbound3. 日志查看
默认配置日志输出有限,可以通过自定义unbound.conf增加日志详细程度:
server: verbosity: 3 logfile: "/opt/unbound/etc/unbound/unbound.log"总结
unbound-docker提供了一种简单而强大的方式来部署和管理自定义DNS服务。通过本文介绍的A记录、PTR记录、SRV记录配置方法,以及灵活的转发规则设置,用户可以轻松构建适合自己网络环境的DNS解决方案。无论是家庭网络还是小型办公环境,unbound-docker都能满足您对DNS解析的个性化需求。
如果需要更深入的配置,可以参考项目提供的示例配置文件和官方文档,进一步探索Unbound的高级功能。
【免费下载链接】unbound-dockerUnbound DNS Server Docker Image项目地址: https://gitcode.com/gh_mirrors/unb/unbound-docker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考