dnsmasq 是一个开源的 DNS 和 DHCP 服务器,常用于小型网络中。它支持通过配置文件设置 DNS 和 DHCP 规则,以下是一些常用的规则设置示例
基本 DNS 配置
在 /etc/dnsmasq.conf 中添加以下内容:
interface=eth server=192.168.1.1
interface=eth:指定接口,默认为eth。server=192.168.1.1:指定 DNS 服务器地址(可以是本地服务器或外部 DNS 服务器)。
自定义 DNS 解析
在 /etc/dnsmasq.conf 中添加以下内容:
host=192.168.1.100,example.com
- 这条规则会将
168.1.100映射到example.com,客户端查询example.com时会返回168.1.100。
禁止 DNS 污染
为了防止 DNS 污染(即 DNS 查询被本地 DNS 服务器缓存的记录),可以在配置文件中添加以下内容:
no-query=192.168.1.100
- 这条规则会禁止
168.1.100这个 IP 地址进行 DNS 查询。
设置递归 DNS 服务器
如果需要将请求转发到外部 DNS 服务器,可以使用 符号:
server=192.168.1.1@192.168.1.254
- 这将将请求转发到
168.1.1(本地 DNS 服务器)和168.1.254(外部 DNS 服务器)。
禁用 DHCP
如果不需要 DHCP,可以在配置文件中注明:
no-dhcp
指定 DHCP 服务器
如果需要设置 DHCP 服务器,可以添加以下内容:
dhcp-range=192.168.1.2,192.168.1.20,255.255.255.,24h
- 这条规则会分配
168.1.2到168.1.20的 IP 地址,子网掩码为255.255.,租期为 24 小时。
指定 DNS 服务器 IP
可以在配置文件中指定多个 DNS 服务器:
server=/etc/dnsmasq/dnsmasq.db server=8.8.8.8
server=/etc/dnsmasq/dnsmasq.db会使用本地的 dnsmasq 数据库文件。server=8.8.8.8会使用 Google 的公共 DNS 服务器。
防火墙设置
dnsmasq 守护程序在防火墙后面,可以开放以下端口:
iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT
启动 dnsmasq
启动 dnsmasq 后,通常需要重新加载网络接口或重启网络服务:
systemctl restart dnsmasq
测试配置
可以使用以下命令测试 DNS 和 DHCP 配置:
- 测试 DNS 解析:
nslookup example.com 192.168.1.1
- 测试 DHCP 配置:
dhclient 192.168.1.100
注意事项
- dnsmasq 的配置文件使用 符号来表示递归 DNS 服务器。
- 如果需要更多高级功能,可以参考 dnsmasq 文档。
- 如果需要更复杂的 DNS 或 DHCP 配置,可以考虑使用
bind9或其他 DNS 服务器软件。
通过以上配置,你可以根据需求设置 dnsmasq 的 DNS 和 DHCP 规则。

@版权声明
转载原创文章请注明转载自原子VPN|多平台网络连接与线路优化工具,支持节点切换、网络测速及电脑手机端使用,满足不同网络环境下的连接需求,网站地址:https://yuanziapp.com.cn/