一、安装dnsmasq服务
1. 解压
有网络直接yum就行
mkdir -p /root/dnsmasq
mv dnsmasq-kylin-arm-offline.tar.gz /root/dnsmasq
cd /root/dnsmasq
tar -zxvf dnsmasq-kylin-arm-offline.tar.gz
2. 一键离线安装(解决依赖闭环)
# 进入rpm目录,本地全部安装
cd /root/dnsmasq
yum localinstall ./*.rpm -y
3.验证 + 启用服务
# 查看版本
dnsmasq -v
# 开机自启 + 启动
systemctl enable --now dnsmasq
systemctl status dnsmasq
二、配置dns服务器
麒麟默认自带
dnsmasq冲突、还有系统 dhcp、resolved,先关:
# 关闭系统DNS解析服务
systemctl stop systemd-resolved
systemctl disable systemd-resolved
# 关闭自带dhcp(防止端口冲突)
systemctl stop dhcpd || true
systemctl disable dhcpd || true
1. 备份原配置
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
2. 修改配置
# 作用:指定 dnsmasq 监听哪张网卡(只在这张网卡提供DNS服务),你的网卡是 enp1s0,就写 interface=enp1s0
interface=enp1s0
# 作用:只绑定指定的网卡,不监听 0.0.0.0(防止监听所有网卡)
bind-interfaces
# 作用:DNS 缓存大小,表示缓存 1000 条解析记录。越大解析越快,本地DNS 1000 足够用
cache-size=1000
# 作用:上游公共DNS(当解析外网域名时,用这两个DNS去查) 223.5.5.5 = 阿里云DNS # 119.29.29.29 = 腾讯云DNS
server=223.5.5.5
server=119.29.29.29
# 作用:要求查询必须是完整域名(如 a.com),不允许非法域名,防止畸形DNS请求,安全选项
domain-needed
# 作用:不转发私有网段IP的反向解析(防止泄露内网信息) 安全选项,本地DNS必开
bogus-priv
# 自定义本地域名解析
# 格式:address=/自定义域名/要解析到的IP
# 作用:当设备访问这个域名时,直接返回你指定的IP
# 访问 local.server → 解析到 10.0.51.83
address=/local.server/10.0.51.83
# 只解析 binzi.heihei.com 到 10.0.51.83
address=/binzi.heihei.com/10.0.51.83
# 泛解析所有 *.heihei.com 域名到 10.0.51.83
address=/heihei.com/10.0.51.83
# 【泛域名 / 通配符 写法说明】
# ------------------------------
# 例子1:把所有 .com 域名 → 指向 10.0.51.83
# ------------------------------
address=/com/10.0.51.83
# ------------------------------
# 例子2:把所有 .net 域名 → 指向 10.0.51.83
# ------------------------------
address=/net/10.0.51.83
# ------------------------------
# 通配所有域名(任何域名都解析到 10.0.51.83)
# 格式:address=/#/IP
# ------------------------------
address=/#/10.0.51.83
3. 放行防火墙
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --permanent --add-port=67/udp
firewall-cmd --reload
4. 重启 dnsmasq 生效
systemctl restart dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq
5. 检测是否正常
# 检测DNS解析
[root@5183 dnsmasq]# nslookup local.server 10.0.51.83
Server: 10.0.51.83
Address: 10.0.51.83#53
Name: local.server
Address: 10.0.51.83
# 检测DHCP参数
[root@5183 dnsmasq]# dnsmasq --test
dnsmasq: syntax check OK.