dnsmasq
跳转到导航
跳转到搜索
dnsmasq 可作为 DNS 缓存服务器以及 DHCP 服务器。可以使用多个 DNS 服务器进行查询。
DNS 配置
在配置文件中指定DNS服务器(除开 /etc/resolv.conf 中的配置):
server=8.8.8.8
带端口号的话像这样指定:
server=127.0.0.1#35535
为域名指定DNS服务器:
server=/localnet/192.168.0.1
为域名指定IP地址:
address=/localhost/127.0.0.1
在以下接口上监听请求:
interface=eth0 interface=lo interface=vboxnet0
将指定 IP 视作伪造的记录,返回域名未找到(可用于对付国内运营商等)
bogus-nxdomain=67.215.65.132 # 旧的 OpenDNS 劫持
DHCP 配置
在监听请求的接口上提供 DHCP 服务,但以下接口除外:
no-dhcp-interface=eth0 no-dhcp-interface=vboxnet0
UDP 校验和错误
dnsmasq 发出的 DHCP Offer 数据包的 UDP 检验和是错误的,因此 systemd-networkd 不接受。可以使用 iptables 命令修正:[1]
iptables -t mangle -A OUTPUT -o br0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
信号
SIGHUP- 清空缓存,重新读入hosts文件等(但不会重新读入配置文件)
SIGUSER1- 将统计信息写到系统日志
其它
dnsmasq 不会缓存没有 RA (Recursion Allowed)标志的 DNS 回应。[2][3]