Docker搭建DNS服务器--nouse

前言

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

安装

2.1 实验环境

IP

系统版本

角色

192.168.40.121

Ubuntu 22.10

DNS服务器

192.168.40.122

Ubuntu 22.10

测试机器

2.2 服务器端

2.2.1 Docker安装

更新软件包
root@121:~# apt-get update
安装docker
root@121:~# apt-get install -y docker.io

2.2.2 创建文件存储文件

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

2.2.3创建容器运行dns服务器

root@121:~# sudo docker run --name dns-server -d \
--restart=always --publish 53:53/tcp \
--publish 53:53/udp --publish 10000:10000/tcp \
--volume /data/docker/dns-server:/data sameersbn/bind:latest

sudo docker exec -it dns-server /bin/bash

2.2.4 参数说明

-p 53:53/udp 绑定容器53端口到宿主机的153端口,DNS默认端口;

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

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

2.2.5 查看端口占用情况

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

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

2.2.6 访问DNS服务器

访问地址https://localhost:10000

默认账户和密码root/password

这里访问的是{容器ID}:10000:

# This web server is running in SSL mode. 
# Try the URL 
#    https://1092a6514a9a:10000/
#  instead.
# 外部机器访问时, 需要配置机器的/etc/hosts文件: 192.168.31.85 1092a6514a9a # 宿主机ip地址: 192.168.31.85

Docker搭建DNS服务器--nouse_第1张图片

2.3 DNS服务器页面设置

2.3.1 修改语言

Docker搭建DNS服务器--nouse_第2张图片

2.3.2 设置DNS-Server默认值

Docker搭建DNS服务器--nouse_第3张图片

Docker搭建DNS服务器--nouse_第4张图片

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

Docker搭建DNS服务器--nouse_第5张图片

Docker搭建DNS服务器--nouse_第6张图片

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

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

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

#use
示例一:
    名称: lpf-test   
    ping: lpf-test.cn

示例二:   
    名称: *.lpf-test   
    ping: www.lpf-test.cn, master.lpf-test.cn 等任意*.lpf-test.cn

Docker搭建DNS服务器--nouse_第7张图片

2.3.5 重启容器

root@121:~#sudo docker restart dns-server

2.4 客户端

2.4.1 修改DNS

root@122:~# sudo vi /etc/systemd/resolved.conf
​
...
​
DNS=192.168.40.121 114.114.114.114     # 取消前面的注释,将dns服务器IP写在前面,后面作为备用DNS服务器
​
...

2.4.2 重启systemd-resolved服务

root@122:~# sudo systemctl restart systemd-resolved
​
root@122:~# sudo systemctl enable systemd-resolved
​

2.4.3 ICMP测试

问题

彻底解决 Linux 系统下 systemd-resolve 占用 53 端口的问题

查看端口占用情况,看看 53 端口是不是被 systemd-resolved 占用了。

sudo netstat -nultp

如果 53 端口确定被 systemd-resolved 占用了,则可以根据下面给出的方法解决。

1、先停用 systemd-resolved 服务。

sudo systemctl stop systemd-resolved

sudo systemctl status systemd-resolved

2、编辑 /etc/systemd/resolved.conf 文件,按 “i” 键进入编辑模式。

sudo vi /etc/systemd/resolved.conf

3、换下面说明更改,然后按一下 “esc” 键,再输入 “:wq”(不要输入引号),回车保存即可。

[Resolve]
DNS=223.5.5.5         #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
DNSStubListener=no    #取消注释,把yes改为no
#ReadEtcHosts=yes

4、最后运行下面命令即可。

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Docker搭建DNS服务器 - 知乎

你可能感兴趣的:(Linux,docker,dns)