DNSmasq 简介
DNSmasq 是一个轻量级的 DNS 服务器和 DHCP 服务器,适用于小型网络环境,它结合了 DNS 缓存、DHCP 和网络地址转换(NAT)的功能,使得网络管理员能够轻松地在 CentOS 7 系统上部署和管理网络服务。

安装 DNSmasq
在 CentOS 7 上安装 DNSmasq 非常简单,以下是一步一步的安装过程。
添加 EPEL 仓库
我们需要添加 EPEL(Extra Packages for Enterprise Linux)仓库,以便能够安装 DNSmasq。
sudo yum install epel-release
安装 DNSmasq
使用以下命令安装 DNSmasq:
sudo yum install dnsmasq
配置 DNSmasq
安装完成后,我们需要配置 DNSmasq,默认情况下,DNSmasq 的配置文件位于 /etc/dnsmasq.conf。
sudo nano /etc/dnsmasq.conf
配置示例
以下是一个基本的 DNSmasq 配置示例:
# 监听所有接口的 53 端口 listen-address=127.0.0.1 # 设置 DNS 服务器 server=/google.com/8.8.8.8 server=/doubleclick.net/8.8.4.4 # 启用 DHCP 服务 dhcp-range=192.168.1.10,192.168.1.100,12h # 设置 DNSmasq 为本地 DNS 服务器 interface=eth0
启动和使能 DNSmasq
配置完成后,启动 DNSmasq 并使其在系统启动时自动运行。

sudo systemctl start dnsmasq sudo systemctl enable dnsmasq
配置 DNSmasq
以下是一些常用的 DNSmasq 配置选项:
监听地址
listen-address 参数用于指定 DNSmasq 应该监听的 IP 地址和端口。
| 参数 | 说明 |
|---|---|
| listen-address=IP:PORT | 监听指定的 IP 地址和端口,默认为 127.0.0.1:53 |
DNS 服务器
server 参数用于指定 DNSmasq 应该查询的 DNS 服务器。
| 参数 | 说明 |
|---|---|
| server=DOMAIN:IP | 指定域名和对应的 IP 地址,用于 DNS 查询 |
DHCP 服务
dhcp-range 参数用于指定 DHCP 服务器的地址范围。
| 参数 | 说明 |
|---|---|
| dhcp-range=START,END,LEASE_TIME | 指定 DHCP 服务器的地址范围和租约时间,dhcp-range=192.168.1.10,192.168.1.100,12h |
网络接口
interface 参数用于指定 DNSmasq 应该监听的网络接口。
| 参数 | 说明 |
|---|---|
| interface=INTERFACE | 指定 DNSmasq 应该监听的网络接口,interface=eth0 |
常见问题解答(FAQs)
问题 1:如何查看 DNSmasq 的日志?
解答:DNSmasq 的日志通常存储在 /var/log/dnsmasq.log 文件中,你可以使用以下命令查看日志:

sudo tail -f /var/log/dnsmasq.log
问题 2:如何将 DNSmasq 配置为默认的 DNS 服务器?
解答:在大多数操作系统中,你可以通过修改系统 DNS 设置来将 DNSmasq 配置为默认的 DNS 服务器,以下是在 CentOS 7 中设置默认 DNS 服务器的步骤:
- 打开
/etc/resolv.conf文件:
sudo nano /etc/resolv.conf
- 将
nameserver指令设置为 DNSmasq 的 IP 地址,
nameserver 127.0.0.1
保存并关闭文件。
完成以上步骤后,DNSmasq 将成为默认的 DNS 服务器。

