最近,尝试了下自建DNS服务器,将一些遇到的问题记录一下:

1、服务端的教程网上都有,但域名解析这块需要记录下,使用的namesilo域名(其他类同)。

1)首先在解析处添加对应记录

111.png

2)然后到底部的Registered Nameservers处设置

222.png

3)添加对应记录,等待8-24小时全球生效

333.png

2、有些服务器没有开放53端口,首先检查是否有服务在监听 53 端口,使用 ss 命令

sudo ss -tuln | grep :53

如果输出为空,说明没有服务在监听 53 端口。但如果输出如下:

udp    UNCONN  0       0        127.0.0.53%lo:53          0.0.0.0:*
tcp    LISTEN  0       4096     127.0.0.53%lo:53          0.0.0.0:*

可以看出,系统上有一个服务正在监听 53 端口,但它只绑定到了 127.0.0.53 这个本地回环地址。这意味着该服务只能接受来自本地的 DNS 请求,而无法接受来自外部网络的请求。

解决方法

1)检查当前 DNS 服务

运行以下命令确认当前运行的 DNS 服务:

sudo systemctl status systemd-resolved

如果输出显示 systemd-resolved 正在运行,说明它是当前管理 DNS 的服务。

2)禁用 systemd-resolved

如果你不需要 systemd-resolved,可以禁用它并安装其他 DNS 服务(如 bind9 或 dnsmasq)。

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

3)修改 DNS 解析配置(可选)

编辑 /etc/resolv.conf 文件,将其指向其他 DNS 服务器(如 Google 的公共 DNS):

sudo vi /etc/resolv.conf

添加以下内容:

nameserver 8.8.8.8
nameserver 8.8.4.4

按住Esc,然后输入:,再输入wq,保存并退出。重启下服务器生效。