В чем разница между «firewall-cmd --reload» и «systemctl restart firewalld.service»?

В чем разница между «firewall-cmd --reload» и «systemctl restart firewalld.service»?

В чем разница между firewall-cmd --reloadи systemctl restart firewalld?

решение1

  • systemctl restart firewalldзавершит процесс и начнет новый.

  • firewall-cmd --reloadволя

Команда перезагрузки сбрасывает все конфигурации времени выполнения и применяет постоянную конфигурацию.источник

Каждая конфигурация без --permanentфлага является конфигурацией времени выполнения и

Изменения конфигурации среды выполнения не сохраняются при перезагрузке или перезапуске FirewallD, тогда как постоянные изменения не применяются к работающей системе.

Как указал @mircea-vutcovici, перезагрузка правил брандмауэра с помощью firewall-cmd не приведет к тому, что система будет использовать потенциально новый исполняемый файл firewalld, если он был обновлен с момента последнего перезапуска демона. Однако в зависимости от вашего дистрибутива это могло быть сделано менеджером пакетов при обновлении пакета.документациясостояния:

Для перезагрузки firewalldвы можете использовать командную строку firewall-cmd --reloadили отправить SIGHUPсигнал, firewalldнапример, с помощью killall -HUP firewalld.

Шаг killall -HUP firewalldвыполняется при запуске systemctl reload firewalld. Рассматривая базовыйдизайнfirewalld по сути являетсявнешний интерфейсили iptablesаналогичные бэкенды. Поэтому завершение процесса firewalld не должно повлиять на фактические правила брандмауэра. Поэтому оба способа перезагрузки правил firewalld имеют одинаковый эффект. Лично я бы предпочел способ systemd, чтобы убедиться, что используется самый последний исполняемый файл firewalld.

Связанный контент