搭建DNS服务器后怎么设置?

HCRM技术_小炮 DNS 2026-05-23 10 0

搭建 DNS 服务器后的设置主要分为两部分:服务器本身的配置文件调整(确保它能正确解析)和客户端的网络配置(告诉设备去询问这台 DNS 服务器),下面我按常见的 Linux 环境(如用 BIND9)和 Windows 环境分别说明。

一、服务器端配置(以 Linux + BIND9 为例)

假设你已经用apt install bind9yum install bind 安装好了,核心是设置监听地址、转发规则、区域文件

1、编辑主配置文件/etc/bind/named.conf.options

- 设置监听 IP(允许多少 IP 来查询):

     listen-on { 192.168.1.100; };  # 换成你服务器内网IP
     listen-on-v6 { none; };

- 设置允许查询的客户端:

     allow-query { localhost; 192.168.1.0/24; };  # 允许局域网查询

- 设置递归查询(如果只想做权威服务器可关):

     recursion yes;
     allow-recursion { localhost; 192.168.1.0/24; };

- 可选:设置转发(让这台服务器把未知域名转给上游 DNS):

     forwarders {
         8.8.8.8;
         114.114.114.114;
     };

2、添加区域文件(如解析内部域名home.lan

编辑/etc/bind/named.conf.local

   zone "home.lan" {
       type master;
       file "/etc/bind/db.home.lan";
   };

创建/etc/bind/db.home.lan 文件,写入:

   $TTL 86400
   @   IN  SOA  ns1.home.lan. admin.home.lan. (
             2025010101  ; 序列号
             3600        ; 刷新
             1800        ; 重试
             604800      ; 过期
             86400       ; 最小TTL
   )
   @       IN  NS  ns1.home.lan.
   ns1     IN  A   192.168.1.100
   router  IN  A   192.168.1.1
   pc1     IN  A   192.168.1.101

3、检查配置并重启服务

   sudo named-checkconf
   sudo named-checkzone home.lan /etc/bind/db.home.lan
   sudo systemctl restart bind9

4、防火墙放行(UDP 53、TCP 53)

   sudo ufw allow 53
   # 或 iptables / firewall-cmd 对应开放

二、客户端设置(让设备使用这台 DNS 服务器)

1.局域网内其他电脑(Windows / Mac / Linux)

Windows

控制面板 → 网络和共享中心 → 更改适配器设置 → 右键当前网卡 → 属性 →Internet 协议版本 4 (TCP/IPv4) → 属性 → 选择“使用下面的 DNS 服务器地址” → 填入你的服务器 IP(如192.168.1.100)。

Mac

系统偏好设置 → 网络 → 选择当前连接 → 高级 → DNS → 添加192.168.1.100

Linux

编辑/etc/resolv.conf,写入:

     nameserver 192.168.1.100

(某些发行版由 dhcp 管理,可修改 NetworkManager 配置或/etc/dhcp/dhclient.conf

**通过路由器全局分配(推荐)

进入路由器管理页面 →DHCP 设置 → 将DNS 服务器 改为你的 DNS 服务器 IP → 保存并重启路由器。

这样所有连接到该路由器的设备都会自动使用你的 DNS。

**测试验证

在任意客户端打开终端/cmd,运行:

   nslookup pc1.home.lan       # 应返回 192.168.1.101
   nslookup www.baidu.com      # 应正常解析(如果设置了转发)

若解析失败,先排查:

- 客户端能否 ping 通 DNS 服务器 IP?

- 服务器上netstat -tuln | grep 53 看 BIND 是否在监听?

- 服务器防火墙是否放行 UDP 53?

三、常见问题与解决

问题现象 可能原因 解决方法
客户端 nslookup 超时 防火墙阻挡 检查服务器和客户端防火墙
能解析内部域名,但外网域名失败 未开启递归或未配置转发 开启recursion yes; 并填上forwarders
修改区域文件后无变化 序列号未增加 每次修改 zone 文件必须递增 SOA 中的序列号
Windows 显示“服务器失败” TCP 53 端口被禁 确保防火墙同时放行 TCP 53(用于大查询)

如果你不是用 BIND,而是dnsmasqUnboundWindows Server 的 DNS 角色,设置思路类似:

- 指定其监听的网络接口

- 设定允许的客户端范围

- 配置要解析的域名和对应 IP

- 发给客户端使用该 DNS

需要更具体的指导吗?你可以告诉我用的是哪种 DNS 软件(BIND、dnsmasq、Windows Server DNS 等)以及运行在什么系统(Ubuntu、CentOS、Windows Server)上,我可以给出针对性的配置示例。

文章摘自:https://idc.huochengrm.cn/dns/25914.html

评论