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 规则。

dnsmasq 是一个开源的 DNS 和 DHCP 服务器,常用于小型网络中。它支持通过配置文件设置 DNS 和 DHCP 规则,以下是一些常用的规则设置示例

@版权声明

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