Skip to content

家庭域名服务器 | Docker系列

前言

本文介绍使用AdGuard HomeUbuntu系统上搭建DNS服务器,请先根据本章前言完成环境的搭建。

相关网站:

拉取镜像

shell
docker pull adguard/adguardhome:latest

开放端口

端口类型端口端口用途
UDP53DNS查询
TCP53DNS查询
TCP80管理界面
TCP443管理界面
TCP3000初始化服务器

配置文件

shell
# 前往var目录
cd /var

# 创建工作目录
mkdir adguardhome

# 进入工作目录
cd adguardhome

# 创建数据文件夹
mkdir work

# 创建配置文件夹
mkdir conf

# 创建docker配置文件
touch compose.yml

# 编辑docker配置文件
nano compose.yml

compose.yml

yml
services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: always
    volumes:
    - ./work:/opt/adguardhome/work
    - ./conf:/opt/adguardhome/conf
    ports:
    - "53:53/tcp"
    - "53:53/udp"
    - "80:80/tcp"
    - "443:443/tcp"
    - "3000:3000/tcp"

配置系统

Ubuntu系统的DNSStubListener占用53端口,导致Adguard Home无法启动,需要关闭DNSStubListener

shell
# 查看53端口占用情况
sudo lsof -i :53

# 进入配置文件目录
cd /etc/systemd

# 编辑配置文件
nano resolved.conf

# 重启systemd-resolved
sudo systemctl restart systemd-resolved

# 验证53端口占用情况
sudo lsof -i :53

resolved.conf

txt
#这里改为no,并删去井号
DNSStubListener=no

开始运行

shell
# 前往工作目录
cd /var/adguardhome

# 开始运行
docker compose up -d

# 若显示以下内容,则运行成功
# Creating adguardhome ... done
  1. 在浏览器访问:http://服务器ip地址:3000,进入初始化服务器页面
  2. 设置服务器用户名与密码,其余保持默认
  3. 添加服务器ip地址为客户端的DNS服务器

维护服务

shell
# 停止服务
cd /var/adguardhome
docker compose down

# 更新服务
cd /var/adguardhome
docker compose down
docker compose pull
docker compose up -d

# 压缩数据文件夹
cd /var/adguardhome
tar -czf work.tar.gz work/
tar -czf conf.tar.gz conf/

# 解压缩数据文件夹
cd /var/adguardhome
tar -xzf work.tar.gz work/
tar -xzf conf.tar.gz conf/