Windows/Liunx从零搭建 DNS 服务使用全指南

在局域网或企业网络中,“通过域名访问设备” 比记 IP 地址更高效,而 DNS(Domain Name System,域名系统)正是实现 “域名→IP” 解析的核心服务。本文将分别讲解 Windows Server 2019 和 Linux(CentOS 7)系统的 DNS 服务部署、解析配置及客户端使用方法,覆盖从服务搭建到日常运维的全流程,新手也能轻松掌握。

一、先理清:DNS 核心概念与作用

动手前先搞懂基础逻辑,避免后续操作踩错方向。

1. DNS 的核心价值

  • 简化访问:无需记忆复杂的 IP 地址(如192.168.1.100),通过简单域名(如server1.lan)即可访问设备。
  • 统一管理:当设备 IP 变更时,只需修改 DNS 服务器的解析记录,所有客户端无需单独调整。
  • 支持多场景:可实现内网域名解析(如办公设备互访)、外网域名转发(如访问百度、淘宝)等需求。

2. 关键术语解析

  • DNS 服务器:存储域名与 IP 对应关系(解析记录),响应客户端解析请求的设备。
  • 区域(Zone):DNS 服务器管理的 “域名范围”,如lan区域负责解析所有以.lan结尾的域名(如pc1.lannas.lan)。
  • 解析记录:域名与 IP 的映射关系,常见类型有:
    • A 记录:将域名解析到 IPv4 地址(最常用,如server1.lan → 192.168.1.100);
    • AAAA 记录:将域名解析到 IPv6 地址(较少用,需网络支持 IPv6);
    • 反向解析记录(PTR):将 IP 解析到域名(用于验证设备身份,如邮件服务器)。
  • 客户端:需要通过 DNS 解析域名的设备(如电脑、手机、服务器),需手动指定 DNS 服务器 IP。

二、部署前准备:环境与依赖检查

无论 Windows 还是 Linux,先确保环境满足以下条件,避免部署失败。

检查项Windows Server 2019(服务端)Linux(CentOS 7,服务端)客户端(Windows/Linux)
操作系统Windows Server 2019(标准版 / 数据中心版)CentOS 7(最小安装或桌面版均可)Windows 10/11、CentOS 7、Ubuntu 等
网络固定 IP 地址(如192.168.1.10),避免 IP 变动导致服务失效固定 IP 地址(如192.168.1.20与 DNS 服务器在同一局域网,能 ping 通服务端 IP
权限管理员账号(如Administratorroot 或 sudo 权限普通用户即可(修改 DNS 需管理员 /root 权限)
依赖系统自带 DNS 服务组件,无需额外安装需安装bind(DNS 核心服务)、bind-utils(解析工具)Windows 无需额外工具;Linux 需bind-utils(可选)

三、方案一:Windows Server 2019 部署 DNS 服务

Windows 通过图形化界面操作,步骤更直观,适合不熟悉命令行的用户。

1. 安装 DNS 服务组件

  1. 打开 “服务器管理器”,点击左侧 “仪表板”→“添加角色和功能”;
  2. 进入 “添加角色和功能向导”,点击 “下一步”,选择 “基于角色或基于功能的安装”,继续 “下一步”;
  3. 选择当前服务器(如WIN-XXXXXX),点击 “下一步”;
  4. 在 “服务器角色” 中勾选 “DNS 服务器”,弹出 “添加 DNS 服务器所需的功能”,点击 “添加功能”,然后 “下一步”;
  5. 后续步骤均点击 “下一步”,最后点击 “安装”,等待安装完成后点击 “关闭”。

2. 创建 DNS 区域(核心:管理域名范围)

安装完成后,需创建 “区域” 来管理特定域名的解析记录:

  1. 打开 “DNS 管理器”:在 “服务器管理器” 左侧点击 “DNS”,右键点击当前服务器名称(如WIN-XXXXXX),选择 “DNS 管理器”;
  2. 新建正向查找区域(解析 “域名→IP”,最常用):
    • 右键点击 “正向查找区域”,选择 “新建区域”,进入向导后点击 “下一步”;
    • 选择区域类型:内网解析选 “主要区域”(自己管理记录),点击 “下一步”;
    • 输入区域名称(如lan,表示管理所有.lan结尾的域名),点击 “下一步”;
    • 区域文件保持默认(自动生成lan.dns),点击 “下一步”;
    • 动态更新选择 “不允许动态更新”(内网手动管理更稳定),点击 “下一步”;
    • 点击 “完成”,正向查找区域创建完成。

3. 添加解析记录(域名→IP 映射)

区域创建后,添加 A 记录实现 “域名→IP” 解析:

  1. 在 “DNS 管理器” 中,展开 “正向查找区域”→右键点击刚创建的lan区域→选择 “新建主机 (A 或 AAAA) 记录”;
  2. 输入 “主机名”(如server1,完整域名为server1.lan),“IP 地址”(如192.168.1.100);
  3. 无需勾选 “创建相关的指针 (PTR) 记录”(反向解析可选),点击 “添加主机”;
  4. 提示 “成功创建了主机记录”,点击 “确定”,再点击 “完成”。

4. 验证 DNS 服务器(本地测试解析)

在 DNS 服务器本地测试解析是否正常:

  1. 打开 “命令提示符”(Win+R→输入cmd→回车);
  2. 执行解析命令:nslookup server1.lan(替换为你创建的域名);
  3. 若输出类似以下内容,说明服务端部署成功:
    Server:  WIN-XXXXXX.lan
    Address:  192.168.1.10  # DNS服务器IP
    
    Name:    server1.lan
    Address:  192.168.1.100  # 解析到的IP
    

四、方案二:Linux(CentOS 7)部署 DNS 服务

Linux 通过命令行操作,核心依赖bind服务,步骤更简洁,适合服务器环境。

1. 安装 DNS 核心服务与工具

执行yum命令安装bind(DNS 服务)和bind-utils(解析测试工具):

# 安装DNS服务与工具
yum install -y bind bind-utils

2. 配置 DNS 主配置文件(named.conf)

DNS 的主配置文件为/etc/named.conf,需修改以允许客户端访问并指定区域文件路径:

# 编辑主配置文件
vim /etc/named.conf

找到以下内容并修改(关键修改处已标注):

options {
    listen-on port 53 { any; };  # 改为any,允许所有客户端访问(内网可放心使用)
    listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    allow-query     { any; };  # 改为any,允许所有客户端查询

    # 以下内容保持默认,无需修改
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

# 添加正向查找区域(管理lan域名,与Windows方案对应)
zone "lan" IN {
    type master;  # 主区域(自己管理记录)
    file "lan.zone";  # 区域文件名称(后续会创建)
    allow-update { none; };  # 禁止动态更新,手动管理
};

修改完成后,按Esc→输入:wq保存退出。

3. 创建区域文件(存储解析记录)

区域文件需放在/var/named目录下(与主配置文件directory参数一致),先复制模板文件再修改:

# 复制模板文件为lan.zone(与主配置文件中file参数一致)
cp /var/named/named.localhost /var/named/lan.zone

# 修改区域文件权限(确保named用户可读取)
chown named:named /var/named/lan.zone

# 编辑区域文件
vim /var/named/lan.zone

将文件内容修改为以下内容(关键字段已标注):

$TTL 1D  # 解析记录有效期(1天)
@       IN SOA  lan. admin.lan. (  # @表示当前区域(lan),admin.lan是管理员邮箱
                    0       ; serial  # 序列号(修改记录后需+1,用于主从同步)
                    1D      ; refresh  # 从服务器刷新间隔
                    1H      ; retry    # 刷新失败后重试间隔
                    1W      ; expire   # 从服务器过期时间
                    3H )    ; minimum  # 最小缓存时间
        IN NS   dns.lan.  # 指定DNS服务器的域名(自己)
dns     IN A    192.168.1.20  # DNS服务器的A记录(域名dns.lan→IP192.168.1.20)
server1 IN A    192.168.1.100  # 新增解析记录(server1.lan→192.168.1.100)

修改完成后保存退出。

4. 启动 DNS 服务并设置开机自启

# 启动named服务(DNS核心服务)
systemctl start named

# 设置开机自启
systemctl enable named

# 检查服务状态(显示active (running)则正常)
systemctl status named

5. 验证 DNS 服务器(本地测试)

执行nslookup命令测试解析:

# 解析server1.lan(替换为你添加的域名)
nslookup server1.lan

若输出类似以下内容,说明 Linux DNS 服务部署成功:

Server:         192.168.1.20  # DNS服务器IP
Address:        192.168.1.20#53  # DNS端口(默认53)

Name:   server1.lan
Address: 192.168.1.100  # 解析到的IP

五、客户端配置:使用 DNS 解析域名

无论客户端是 Windows 还是 Linux,只需指定 DNS 服务器 IP,即可通过域名访问设备。

1. Windows 客户端配置(以 Windows 10 为例)

  1. 右键点击任务栏 “网络” 图标→选择 “打开网络和共享中心”;
  2. 点击左侧 “更改适配器设置”→右键点击当前网络(如 “以太网”)→选择 “属性”;
  3. 双击 “Internet 协议版本 4 (TCP/IPv4)”;
  4. 选择 “使用下面的 DNS 服务器地址”,输入 DNS 服务器 IP(如 Windows DNS 的192.168.1.10或 Linux DNS 的192.168.1.20);
  5. 点击 “确定”→“关闭”,配置完成。

测试:打开命令提示符,执行ping server1.lan,若能 ping 通(显示解析到的 IP),说明配置正常。

2. Linux 客户端配置(以 CentOS 7 为例)

需修改网络配置文件,指定 DNS 服务器 IP:

# 编辑网络配置文件(不同网卡名称可能不同,如ens33)
vim /etc/sysconfig/network-scripts/ifcfg-ens33

添加或修改以下内容:

# DNS服务器IP(可填1-2个,多个用空格分隔)
DNS1=192.168.1.20  # 替换为你的DNS服务器IP
DNS2=8.8.8.8  # 可选,添加外网DNS(如谷歌DNS,用于解析外网域名)

保存退出后,重启网络服务使配置生效:

# 重启网络服务
systemctl restart network

测试:执行ping server1.lan,若能 ping 通,说明配置正常。

六、常见问题排查(避坑指南)

遇到解析失败或服务启动报错,按以下步骤排查。

1. DNS 服务启动失败(Linux)

  • 检查配置文件语法:执行named-checkconf /etc/named.conf(主配置文件)和named-checkzone lan /var/named/lan.zone(区域文件),若有语法错误会提示具体行号;
  • 检查端口占用:执行netstat -tulnp | grep 53,看 53 端口是否被其他进程占用,若有则停止该进程。

2. 客户端无法解析域名(Windows/Linux)

  • 检查网络连通性:客户端执行ping DNS服务器IP(如ping 192.168.1.10),若 ping 不通,需排查 DNS 服务器防火墙或网络;
  • 检查 DNS 服务器 IP 是否正确:客户端确认 DNS 配置的 IP 是服务端实际 IP,避免输错;
  • 检查解析记录:在 DNS 服务端重新确认区域文件中的 A 记录(域名、IP 是否正确)。

3. 能解析内网域名,无法解析外网域名(如百度)

  • Windows DNS:需配置 “转发器”(DNS 管理器→右键服务器→属性→转发器→添加外网 DNS,如223.5.5.5(阿里云));
  • Linux DNS:在/etc/named.confoptions块中添加forwarders { 223.5.5.5; 223.6.6.6; };,然后重启 named 服务。

总结

DNS 部署的核心是 “服务端创建区域与记录 + 客户端指定 DNS IP”,两种系统方案各有优势:

  • Windows Server:图形化界面,操作直观,适合新手或办公环境;
  • Linux(CentOS 7):命令行操作,占用资源少,适合服务器或无界面环境。

无论选择哪种方案,关键记住 3 点:服务端需固定 IP、解析记录要准确、客户端 DNS 配置要正确,按本文步骤操作,即可快速搭建稳定的 DNS 服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值