Dnsmasq

📮 返回服务页

1. 前言

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。

它是DHCP服务器和DNS服务器结合,并允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器)

DNSmasq支持静态和动态两种DHCP配置方式。

2. 安装

检查

检查系统是否已经安装服务:

rpm -qa | grep -i dnsmasq

安装

安装服务

yum install -y dnsmasq

配置

文件

修改配置文件:

vi/vim /etc/named.conf

dns上游服务器【转发器】配置文件的路径(默认注释,不配置默认用resolv.conf的dns服务器)
resolv-file=[配置文件路径]

按照resolv-file配置的dns从上往下进行指派解析(默认注释)
strict-order

此文件中dnsmasq的ip和域名
addn-hosts=[配置文件路径]

监听地址,可以写本机IP,dhcp网关地址,可写多个,用逗号分隔
listen-address=[IP地址]

强制解析域名(可以写多个,即使host不配置,此处也会解析)
address=/域名/IP地址


修改dns上游服务器配置文件:

vim [配置文件路径]

nameserver [上游服务器IP地址]

修改dnsmasq解析的配置文件:

vim [配置文件路径]

[域名IP地址] [域名]

注:此文件配置相当于配置了正反向解析。

本机 DNS 服务器地址:

vim /etc/resolv.conf 
nameserver [DNS服务器IP]

3. 启动

端口

启动之前先查看端口是否占用:

netstat -aunpt | grep 【端口号】

防火墙

开放服务:

firewall-cmd --zone=public --add-service=dns --permanent
firewall-cmd --reload

关闭安全子系统:

vi /etc/sysconfig/selinux => SELINUX=disabled
or
vi /etc/selinux/config => SELINUX=disabled
setenforce 0

注:此命令将 selinux 设置成 permissive 模式,即临时关闭

启动

启动:

systemctl start dnsmasq		    #启动服务
systemctl enable dnsmasq		#开机自启动服务

如更新配置文件,需重启服务:

systemctl restart dnsmasq