Linux Mac

发布于 更新于

AI总结: dnsmasq 是一个轻量级的 DNS 转发和 DHCP 服务器工具,适用于本地 DNS 解析和网络管理。以下是其主要功能和使用方法: 1. **安装**: - 在 Ubuntu/Debian 上使用命令 `sudo apt update && sudo apt install dnsmasq`。 - 在 CentOS/RHEL 上使用 `sudo yum install epel-release && sudo yum install dnsmasq`。 - 在 macOS 上通过 Homebrew 安装:`brew install dnsmasq`。 - Windows 用户可通过 WSL 或其他工具实现类似功能。 2. **配置文件**: - 默认路径:Linux 为 `/etc/dnsmasq.conf`,macOS 为 `/usr/local/etc/dnsmasq.conf`。 - 基础配置示例包括设置监听地址、上游 DNS、静态映射、自定义 hosts 文件、启用 DHCP 和缓存设置。 3. **常见功能与场景**: - 自定义域名解析:如将 `dev.local` 解析到 `192.168.1.50`。 - 多 IP 负载均衡:如 `service.example.com` 轮询解析到多个 IP。 - 代理 DNS 请求:根据域名将请求转发到不同的 DNS 服务器。 - 启用 DHCP,为局域网设备分配 IP。 4. **启动与测试**: - 启动服务:Linux 使用 `sudo systemctl restart dnsmasq`,macOS 使用 `sudo dnsmasq -C /usr/local/etc/dnsmasq.conf`。 - 设置 DNS 客户端为 dnsmasq 的 IP(通常是 `127.0.0.1`)。 - 测试 DNS 解析可使用 `nslookup` 或 `dig` 命令。 5. **常用参数说明**: - `server`:配置上游 DNS 服务器。 - `address`:将域名解析到指定 IP。 - `addn-hosts`:读取额外的 hosts 文件。 - `no-resolv`:禁用默认 DNS 配置。 - `dhcp-range`:配置 DHCP 地址池。 6. **日志与调试**: - 日志默认记录在 `/var/log/syslog` 或 `/var/log/dnsmasq.log`,可通过 `-d` 参数启动调试模式。 7. **典型应用场景**: - 开发环境的域名解析。 - 局域网 DHCP 和 DNS 服务。 - DNS 过滤广告或恶意域名。 - 跨平台测试不同 DNS 策略。 建议在内容中增加具体的应用示例和配置细节,以提升实用性和可操作性。

DNSMASQ 使用记录

dnsmasq 是一个轻量级、灵活的 DNS 转发和 DHCP 服务器工具,常用于本地 DNS 解析、网络管理、代理 DNS 请求或自定义域名映射。以下是其核心功能和使用方法:


1. 安装 dnsmasq

在 Linux 上安装

在 macOS 上安装

通过 Homebrew 安装:

brew install dnsmasq

在 Windows 上

DNSMASQ 本身是 Linux 工具,但可通过 Windows Subsystem for Linux (WSL) 或替代工具(如 dnscrypt-proxy)实现类似功能。


2. 配置文件

默认配置文件路径:

基础配置示例

listen-address=127.0.0.1
log-queries
log-facility=/var/log/dnsmasq.log
 
# 设置上游 DNS(默认会使用系统配置)
server=8.8.8.8    # Google Public DNS
server=1.1.1.1    # Cloudflare DNS

# 自定义域名解析(静态映射)
address=/example.com/192.168.1.100
address=/api.example.com/192.168.1.101
address=/test.example.com/192.168.1.102

# 允许多 IP 映射(同一域名指向多个 IP)
address=/multi-ips.com/192.168.1.200,192.168.1.201

# 读取 hosts 文件(可叠加 hosts 配置)
addn-hosts=/path/to/custom-hosts

# 启用 DHCP(如果需要)
interface=eth0      # 绑定的网络接口
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h

# 缓存设置(加快重复查询)
cache-size=1000     # 缓存大小

3. 常见功能与场景

场景 1:自定义域名解析

场景 2:多 IP 负载均衡

场景 3:代理部分请求到指定 DNS

场景 4:启用 DHCP


4. 启动与测试

启动服务

设置 DNS 客户端

将本地设备的 DNS 配置为 dnsmasq 的 IP(通常是 127.0.0.1 或局域网 IP):

测试 DNS 解析

# 查看解析结果
nslookup example.com 127.0.0.1

# 或使用 dig
dig @127.0.0.1 example.com

5. 常用参数说明

参数 说明
server 配置上游 DNS 服务器(支持条件匹配,如 server=/domain.com/8.8.8.8)。
address=/domain.com/1.2.3.4 domain.com 解析到指定 IP。
addn-hosts=/path/to/hosts 读取额外的 hosts 文件(可叠加多个)。
no-resolv 禁用 /etc/resolv.conf 中的默认 DNS 配置。
listen-address=127.0.0.1 指定监听的 IP 地址(默认仅本地)。
dhcp-range 配置 DHCP 地址池(适用于局域网服务器)。

6. 日志与调试


7. 典型应用场景


相关链接

  1. dnsmasq 官方文档