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