RockyLinux智能DNS解析配置(手把手教你搭建本地智能DNS服务)

来源:这里教程网 时间:2026-03-25 12:24:20 作者:

在企业或家庭网络中,我们常常希望根据访问者的地理位置、网络线路或特定策略返回不同的IP地址,这种技术被称为智能DNS解析。本文将使用开源工具

dnsmasq
RockyLinux 系统上搭建一个简单的智能DNS服务器,适合初学者理解和操作。

一、什么是智能DNS?

智能DNS(Smart DNS)是一种根据客户端来源IP、请求域名或其他条件,动态返回不同解析结果的技术。例如:

内网用户访问
web.local
返回内网IP(如 192.168.1.10) 外网用户访问同一域名则返回公网IP(如 203.0.113.10)

这不仅能提升访问速度,还能实现内外网分离、负载均衡等高级功能。

二、准备工作

你需要:

一台安装了 RockyLinux 8 或 9 的服务器 root 权限或具有 sudo 权限的用户 确保系统已联网,能安装软件包

三、安装 dnsmasq

dnsmasq
是一个轻量级的 DNS 转发和 DHCP 服务器,非常适合用于本地智能DNS场景。

执行以下命令安装:

sudo dnf install -y dnsmasq

四、配置智能DNS规则

假设我们有如下需求:

当内网用户(IP段 192.168.1.0/24)访问
intranet.example.com
时,返回 192.168.1.100 其他所有用户访问该域名时,由上游DNS(如 8.8.8.8)解析

编辑 dnsmasq 配置文件:

sudo vi /etc/dnsmasq.conf

在文件末尾添加以下内容:

# 启用本地解析local=/example.com/# 内网用户访问 intranet.example.com 返回内网IPaddress=/intranet.example.com/192.168.1.100# 指定上游DNS服务器(可选)server=8.8.8.8server=114.114.114.114

注意:
local=/example.com/
表示所有以
example.com
结尾的域名都由本机处理,不转发给上游DNS。

五、启动并启用 dnsmasq 服务

sudo systemctl enable --now dnsmasqsudo systemctl status dnsmasq

如果状态显示

active (running)
,说明服务已成功启动。

六、配置防火墙(如启用 firewalld)

允许 DNS(UDP 53)端口:

sudo firewall-cmd --permanent --add-service=dnssudo firewall-cmd --reload

七、测试智能DNS解析

在内网的一台电脑上,将 DNS 服务器地址设置为 RockyLinux 服务器的 IP(如 192.168.1.50),然后执行:

nslookup intranet.example.com 192.168.1.50

你应该看到返回的 IP 是

192.168.1.100
。而从外网机器查询(若服务器有公网IP且开放53端口),则会走上游DNS解析。

八、常见问题与优化

无法解析? 检查
/etc/resolv.conf
是否包含
nameserver 127.0.0.1
(仅当本机也使用该DNS时) 日志查看: 使用
journalctl -u dnsmasq -f
实时查看日志 更复杂的策略? 可结合
iptables
标记流量,或使用
bind9
实现更高级的视图(view)功能

九、总结

通过本文,你已经学会了如何在 RockyLinux 上使用

dnsmasq
搭建一个基础的智能DNS解析服务。这种方法简单、高效,非常适合中小型网络环境。掌握 RockyLinux DNS配置本地DNS服务器 的搭建,是网络管理的重要技能之一。

如果你需要更强大的功能(如基于地理位置的解析),可以考虑使用

PowerDNS
Bind9
配合 GeoIP 数据库,但对新手来说,
dnsmasq
已经足够应对大多数 RockyLinux网络设置 场景。

—— 本文适用于 RockyLinux 8/9,操作前请备份重要配置 ——

相关推荐