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

如何为firewalld单独修改D-Bus的默认25秒超时时间?

如何为firewalld单独修改D-Bus的默认25秒超时时间?

我太懂你这种头疼的处境了——在跑着90台VM、300个VLAN的oVirt集群里,firewalld处理规则的速度慢到触发了D-Bus的25秒默认超时,firewall-cmd完全没法用,之前改了D-Bus配置还没效果,属实闹心。咱们一步步来搞定这个问题,专门给firewalld调整超时,不影响其他服务。

首先得搞明白:你之前的配置没生效,大概率是因为没找对firewalld对应的D-Bus服务配置文件,或者格式不对。D-Bus的超时配置是可以针对单个服务的,不用改全局设置,这才是最优解。

具体操作步骤:

  1. 复制firewalld的D-Bus配置到自定义目录
    系统默认的firewalld D-Bus配置在/usr/share/dbus-1/system.d/firewalld.conf,但直接改这个会被系统更新覆盖。咱们先把它复制到/etc/dbus-1/system.d/下,这样自定义的配置不会丢:

    sudo cp /usr/share/dbus-1/system.d/firewalld.conf /etc/dbus-1/system.d/
    
  2. 编辑firewalld的D-Bus配置文件
    用你习惯的编辑器打开/etc/dbus-1/system.d/firewalld.conf,在<busconfig>这个根标签里面,添加针对firewalld服务的超时设置。比如要把超时改成60秒(也就是60000毫秒),就加这段:

    <service name="org.fedoraproject.FirewallD1">
      <!-- 把超时设置为60秒,单位是毫秒,可根据实际需求调整 -->
      <method_call_timeout>60000</method_call_timeout>
    </service>
    

    注意要把这段放在现有配置的<policy>块外面,或者和其他<service>标签同级的位置,别嵌套错了。

  3. 重启服务让配置生效
    改完配置后,得重启D-Bus和firewalld才能生效:

    sudo systemctl restart dbus
    sudo systemctl restart firewalld
    

    👉 小提醒:重启dbus可能会暂时影响其他依赖D-Bus的服务,测试环境随便造,生产环境最好挑业务低峰期操作。

  4. 验证效果
    现在跑个耗时的firewall-cmd命令试试,比如firewall-cmd --list-all-zones,看看还会不会报D-Bus超时的错。要是还是超时,就把method_call_timeout的值调大一点,比如改成120000(120秒)。

为啥之前的配置没效果?

你之前在/etc/dbus-1/system.d/加的自定义conf文件,应该是没正确指定firewalld的服务名org.fedoraproject.FirewallD1,D-Bus根本识别不到这是给firewalld的配置,所以超时还是25秒。

额外小技巧(不推荐全局改)

如果你实在要改全局D-Bus超时(不建议,会影响所有服务),可以编辑/etc/dbus-1/system.conf,找到<default_method_call_timeout>标签,把默认的25000(25秒)改成你要的值,但这是下下策,优先用前面的单独配置方法。

要是操作完还是有问题,去看看D-Bus的日志journalctl -u dbus,里面会有配置错误的提示,帮你排查问题。

备注:内容来源于stack exchange,提问作者Saddam Xussein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:08:07