CentOS CentOS

CentOS: FirewallD is not running

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Команда firewall-cmd сообщает, что служба не запущена или замаскирована. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Диагностика
  5. Запуск
  6. После запуска

#Что означает ошибка

Сообщение
FirewallD is not running

FirewallD is not running в CentOS означает, что служба firewalld остановлена или не запустилась. Команда firewall-cmd в таком состоянии не работает, и порты управляются другим способом (iptables) либо не фильтруются вовсе. Причины: служба отключена, конфликт с iptables-services/nftables, ошибка в конфигурации, не установлен пакет.

Узнайте статус и причину отказа в журнале.

Затем запустите службу.

Команда firewall-cmd сообщает, что служба не запущена или замаскирована. Запустите её и добавьте в автозагрузку.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Служба остановленаНет автозапуска.systemctl enable --now.
Служба замаскированаmask.systemctl unmask.
Конфликт с iptablesСлужба iptables.Отключите.
Ошибка конфигурацииXML.Проверьте.

#Пошаговое решение

  1. Проверьте статус и журнал firewalldВ терминале CentOS/Rocky/AlmaLinux выполните systemctl status firewalld --no-pager и journalctl -u firewalld -b --no-pager -n 80. В первой команде проверьте состояние active, inactive, failed или masked, во второй найдите причину отказа, например ошибку файла зоны. На удалённом сервере сохраните существующий SSH-сеанс и не меняйте правила до проверки консоли провайдера. Если служба работает, а соединение всё равно закрыто, проверяйте текущую зону и порт отдельно.
  2. Установите пакет при необходимостиТолько если команда rpm -q firewalld сообщает, что пакет не установлен, проверьте cat /etc/os-release и действующие репозитории, затем администратор может выполнить sudo dnf install firewalld (или yum на старой версии CentOS). Прочитайте план и подтвердите установку только из официальных источников. Сама установка не открывает нужный порт: сначала настройте допустимые правила и доступ к SSH, затем включайте службу. Если сервер использует самостоятельный nftables, не устанавливайте второй брандмауэр без проекта переноса правил.
  3. Снимите маскировкуЕсли systemctl status firewalld показывает masked, выясните у администратора, зачем служба была заблокирована: это может быть намеренная настройка для другого брандмауэра. Лишь после резервного копирования правил и проверки доступа с консоли допустима команда sudo systemctl unmask firewalld. Она разрешает запуск, но не запускает службу автоматически. Не выполняйте enable --now, пока не убедитесь, что новые правила не закроют вам SSH.
  4. Запустите службуПодключитесь по SSH к компьютеру, где запущена программа. Посмотрите статус нужной службы командой sudo systemctl status ИМЯ_СЛУЖБЫ --no-pager (подставьте название из сообщения об ошибке). Если есть failed, откройте последние сообщения sudo journalctl -u ИМЯ_СЛУЖБЫ -n 80 --no-pager и выясните причину. Перезапуск допустим только после устранения причины и проверки конфигурации; на рабочем сервере он может прервать обслуживание.
  5. Откройте порты и проверьте SSHПеред открытием порта проверьте sudo firewall-cmd --get-active-zones и sudo ss -lntup, чтобы увидеть нужную службу и активную зону. Сохраняйте существующее правило SSH и доступ через консоль провайдера. Разрешайте только конкретный порт/службу в нужной зоне, затем выполняйте sudo firewall-cmd --reload и проверяйте доступ с другого устройства. Не отключайте firewalld и не открывайте диапазон всех портов для теста.
  6. Только состояние службы и текущие зоны (вторая команда работает, если firewalld запущен)
    Linux · Терминал (Bash)КомандаНужен sudo
    Только состояние службы и текущие зоны (вторая команда работает, если firewalld запущен). Запуск или снятие маскировки на сервере без запасной консоли может оборвать SSH.
    systemctl status firewalld --no-pager
    sudo firewall-cmd --get-active-zones

#Диагностика

Проверьте: sudo systemctl status firewalld -l, sudo journalctl -u firewalld -b --no-pager | tail -30. Установлен ли пакет: rpm -q firewalld; установка sudo yum install -y firewalld (CentOS 7) или sudo dnf install -y firewalld (CentOS Stream). Проверьте маскировку: systemctl is-enabled firewalld — masked означает запрет запуска; снимите: sudo systemctl unmask firewalld.

#Запуск

Включите и запустите: sudo systemctl enable --now firewalld. Проверка: sudo firewall-cmd --state (running). Если запускается и падает, проверьте синтаксис XML-конфигураций в /etc/firewalld/zones/ и services/: sudo firewall-offline-cmd --check-config. Переименуйте повреждённый файл. Убедитесь, что не запущены конфликтующие службы: sudo systemctl disable --now iptables ip6tables nftables (если используется firewalld).

#После запуска

Откройте нужные порты постоянно: sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload, SSH не закрывайте: --add-service=ssh. Проверьте активную зону sudo firewall-cmd --get-active-zones и правила --list-all. Если вы подключены по SSH и перезапускаете firewalld, убедитесь, что ssh разрешён в зоне, иначе потеряете соединение. Для ядра с обновлениями проверьте модуль: lsmod | grep nf_tables. Документация: firewalld.org.

Linux · Терминал (Bash)Команда
Только диагностика службы. Не смешивайте снятие маскировки, включение firewall и тесты удалённого доступа в одном наборе команд.
systemctl status firewalld --no-pager
journalctl -u firewalld -b --no-pager -n 60

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.