前言

DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。

安装

实验环境

IP 系统版本 角色
192.168.40.121 Ubuntu 22.10 DNS服务器
192.168.40.122 Ubuntu 22.10 测试机器

服务器端

Docker安装

更新软件包

root@121:~# apt-get update

安装docker

root@121:~# apt-get install -y docker.io

创建文件存储文件

root@121:~#  mkdir -p /opt/docker/dns-server

创建容器运行dns服务器

root@121:~# docker run --name dns-server -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /opt/docker/dns-server:/data sameersbn/bind:latest
参数说明
  • -p 53:53/udp 绑定容器53端口到宿主机的53端口,DNS默认端口;

  • -p 10000:10000 图形化界面管理器端口;

  • -volume /dns-server:/data 挂载本地目录作为dns配置存储;

查看端口占用情况

root@121:~# lsof -i:53 #查看53端口的进程

如果被占用参考https://www.otakusay.com/866.html

访问DNS服务器

DNS服务器页面设置

修改语言

设置DNS-Server默认值

创建新的主区域-正向解析

注意:主服务器写localhost,避免重启后失效. 因为我们只做私网解析,指向本地即可

否则会报错如:无法创建主区域 : ‘7xxxxxxx..’不是有效的主服务器

在刚新建的域名下添加ip映射

重启容器

root@121:~#  docker restart dns-server

客户端

修改DNS

root@122:~# vi /etc/systemd/resolved.conf

...

DNS=192.168.40.121 114.114.114.114 #取消前面的注释,将dns服务器IP写在前面,后面作为备用DNS服务器

...

重启systemd-resolved服务

root@122:~# systemctl restart systemd-resolved

root@122:~# systemctl enable systemd-resolved

ICMP测试