You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dnsmasq运行时无需重启动态重载转发规则的方案咨询

dnsmasq 动态重载转发规则可行方案

dnsmasq 本身不支持直接重载普通配置文件内的转发规则,你之前通过普通conf-file引入配置后发送SIGHUP不生效,是因为SIGHUP信号默认不会重新读取普通引入的配置文件,可使用以下两类落地可用的替代方案:

方案1:使用内置--servers-file参数实现规则热加载

该参数是dnsmasq专门为动态加载转发规则设计的配置项,操作步骤如下:

  • 启动dnsmasq时新增启动参数 --servers-file=/etc/dnsmasq.d/dynamic-servers.conf
  • 所有需要动态增删的server=转发规则全部写入上述指定的独立文件中
  • 每次修改完规则文件后,给dnsmasq进程发送SIGHUP信号即可生效:kill -SIGHUP $(pidof dnsmasq)
  • 静态配置可继续放在默认/etc/dnsmasq.conf或/etc/dnsmasq.d/下的其他静态配置文件中,不需要和动态规则混存

方案2:通过DBus接口动态增删规则(无需修改配置文件)

如果需要程序运行时直接调用修改规则、无需操作本地文件,可使用dnsmasq的DBus接口:

  • 启动dnsmasq时新增启动参数 --enable-dbus
  • 新增转发规则命令示例:
dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.dnsmasq.SetServers array:string:"/a1.com/10.23.45.66" array:string:"/a2.com/20.45.24.55"
  • 查询当前生效的转发规则命令:
dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.dnsmasq.GetServers
  • 优势:规则修改即时生效,不需要发信号、不需要修改本地配置文件,适合高频动态调整规则的场景

以上两个方案均不需要重启dnsmasq进程,不会中断已有DNS查询服务。

内容的提问来源于stack exchange,提问作者Ashok Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:54:04