dnsmasq 安装与使用指南
1. 项目目录结构及介绍
在 clone 下载的 dnsmasq 代码仓库中,典型的目录结构可能是这样的:
.
├── COPYING # 许可文件(GPL v2 或 v3)
├── COPYING-v3 # GPL v3 版本许可文件
├── ChangeLog # 更新日志
├── Makefile # 构建脚本
└── src # 源码目录
├── dhcp.c # DHCP 服务相关源码
├── dns.c # DNS 相关源码
├── tftp.c # TFTP 服务相关源码
└── ... # 其他源码文件和头文件
COPYING和COPYING-v3: 包含了 dnsmasq 的许可证信息。ChangeLog: 列举了项目的更新历史。Makefile: 用于编译和构建项目的主要脚本。src: 存放所有源代码的目录,包括 DHCP、DNS 和 TFTP 等核心功能的实现。
2. 项目的启动文件介绍
通常,dnsmasq 是通过执行其编译后的二进制文件来启动的,例如 dnsmasq 或 ./dnsmasq (取决于你的环境)。但是,实际部署时,你可能需要一个守护进程管理器(如 systemd 或 init)来管理这个服务。在这种情况下,启动文件通常是 /etc/init.d/dnsmasq(对于 init 系统)或 /lib/systemd/system/dnsmasq.service(对于 systemd 系统)。
要启动、停止或检查 dnsmasq 的状态,可以使用以下命令:
- 启动:
sudo systemctl start dnsmasq或sudo service dnsmasq start - 停止:
sudo systemctl stop dnsmasq或sudo service dnsmasq stop - 状态查询:
sudo systemctl status dnsmasq或sudo service dnsmasq status
3. 项目的配置文件介绍
dnsmasq 配置主要通过其主配置文件进行,通常位于 /etc/dnsmasq.conf。此文件允许您自定义 dnsmasq 的行为,包括设置 DNS 倾向、添加静态 DHCP 地址、指定上游 DNS 服务器等。
配置文件中的常见选项有:
domain-needed:只有当查询包含域名时才转发。bogus-priv:阻止对私有 IP 地址范围的 DNS 解析。server=/example.com/8.8.8.8:将所有以example.com开头的查询转发到 IP 8.8.8.8。dhcp-range=set:myrange,192.168.1.100,192.168.1.200,12h:定义 DHCP 地址池。
为了应用配置更改并使它们生效,通常需要重新加载或重启 dnsmasq 服务:
- 重新加载:
sudo systemctl reload dnsmasq或sudo service dnsmasq reload - 重启:
sudo systemctl restart dnsmasq或sudo service dnsmasq restart
请注意,某些发行版可能会提供额外的配置文件(如 /etc/resolv.conf),用于设置本地 DNS 解析器的首选 DNS 服务器。确保正确地配置这些文件,以便 dnsmasq 能够正常工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



