在 ubuntu 22.04 中,通过源码编译安装 dnsmasq 服务
系统环境
标题 | 版本 | 备注 |
---|---|---|
系统版本 | ubuntu 22.04.3 LTS (Jammy Jellyfish) | - |
内核版本 | 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux | - |
Dnsmasq | v2.88 | - |
Dnsmasq 简介
dnsmasq
是一款轻量级的 DNS 转发器和 DHCP 服务器软件,适用于小型网络环境中的主机名解析和 IP 地址分配。它通常用于家庭网络、小型办公室和 SOHO(小型办公室/家庭办公室)环境中。以下是 dnsmasq
的一些主要特点:
简单易用:
dnsmasq
设计简洁,易于安装和配置,不需要复杂的设置即可快速搭建 DNS 服务器和 DHCP 服务器。综合功能:除了基本的 DNS 和 DHCP 功能外,
dnsmasq
还支持 TFTP、PXE 引导、IPv6 和 DNSSEC 等功能,使其在小型网络环境中成为一站式解决方案。资源占用低:
dnsmasq
是一款轻量级软件,占用资源少,运行稳定,适用于资源有限的嵌入式系统和路由器等设备。快速响应:由于采用了缓存机制和轻量级算法,
dnsmasq
能够快速响应 DNS 查询请求,并有效地减少网络延迟。灵活可定制:
dnsmasq
提供了丰富的配置选项,用户可以根据实际需求定制 DNS 和 DHCP 的行为,灵活应用于各种网络场景中。
总的来说,dnsmasq
是一款简单实用、功能全面、性能优越的 DNS 和 DHCP 服务器软件,适用于小型网络环境中的主机名解析和 IP 地址分配。
Dnsmasq 官网站点:https://thekelleys.org.uk/dnsmasq/doc.html
Dnsmasq 归档地址:https://thekelleys.org.uk/dnsmasq/
Dnsmasq 安装
1.下载官方提供的源码包到服务器的 /usr/local/src/
目录下:
1 | $ sudo wget -O /usr/local/src/dnsmasq-2.88.tar.gz https://thekelleys.org.uk/dnsmasq/dnsmasq-2.88.tar.gz |
2.将下载好的源码包解压至下载目录:
1 | $ sudo tar -zxf /usr/local/src/dnsmasq-2.88.tar.gz -C /usr/local/src/ |
3.编辑解压目录下 /usr/local/src/dnsmasq-2.88
的 Makefile
文件,修改参数 PREFIX
,重新指定 dnsmasq 安装路径(默认其安装在 /usr/local/
目录下):
1 | $ sed -i 's@PREFIX = /usr/local@PREFIX = /usr/local/dnsmasq@' Makefile |
4.执行命令 make && make install
开始编译安装:
1 | $ sudo make && sudo make install |
5.在 /etc/profile.d/
目录下创建 dnsmasq 环境脚本文件 dnsmasq.sh
,内容为:
1 | # root 用户下这样执行 |
6.执行下 source /etc/profile
加载下 dnsmasq 环境脚本,使其在当前立即生效
1 | $ sudo sh -c 'source /etc/prifle` |
7.执行下命令 dnsmasq --version
看能否正常输出 dnsmasq 版本号,如果能,则说明 dnsmasq 安装成功
1 | $ sudo dnsmasq --version |
8.在 dnsmasq 安装目录创建 2 个目录,分别为 etc
和 logs
, etc
主要存放 dnsmasq 的配置文件,而 logs
则存放 dnsmasq 运行过程中产生的日志文件:
1 | $ sudo mkdir /usr/local/dnsmasq/{etc, logs} |
9.将解压目录下 /usr/local/src/dnsmasq-2.88
的 dnsmasq 配置案例文件 dnsmasq.conf.example
复制到上面创建的 /usr/local/dnsmasq/etc/
目录中,并重命名为 dnsmasq.conf
:
1 | $ cp /usr/local/src/dnsmasq-2.88/dnsmasq.conf.example /usr/local/dnsmasq/etc/dnsmasq.conf |
10.编辑配置文件,将其简单的配置成:
1 | cat << 'EOF' >/usr/local/dnsmasq/etc/dnsmasq.conf |
10.在 /lib/systemd/system/
目录下创建 dnsmasq 启动脚本文件 dnsmasq.service
,内容为:
1 | sudo sh -c 'cat << EOF > /lib/systemd/system/dnsmasq.service |
11.执行命令 systemctl daemon-reload
加载下启动脚本
1 | $ sudo systemctl daemon-reload |
12.执行命令 `` 启动 dnsmasq 并将其设置为开机启动
1 | $ sudo systemctl enable --now dnsmasq.service |