#Что означает ошибка
firewalld порт закрыт
Добавьте службу или порт в нужную зону и сделайте правило постоянным. Проверьте firewall-cmd --list-all.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет правила | Сообщение о запрете доступа возникает у конкретной учётной записи; сравните её права и права нужного файла, функции либо сетевого ресурса. | Проверьте, прослушивает ли приложение нужный порт: sudo ss -ltnp; если службы нет в списке, настройка firewalld не устранит причину. |
| Не постоянное | После перезагрузки. Сопоставьте этот признак с точной стадией возникновения неисправности. | Если правило существует только в текущей конфигурации, согласуйте постоянное правило для правильной зоны; не открывайте порт во всех зонах. |
| Не та зона | В случае «Fedora: firewalld блокирует порт — как открыть службу или порт» проверьте наличие причины «Не та зона» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Сначала определите активную зону firewall-cmd --get-active-zones, затем смотрите её правила. Изменение другой зоны не повлияет на подключение. |
| SELinux | В случае «Fedora: firewalld блокирует порт — как открыть службу или порт» проверьте наличие причины «SELinux» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | При отказе соединения после правильного правила проверьте журнал SELinux/audit и права приложения, не отключая SELinux целиком. |
#Пошаговое решение
- Проверьте, действительно ли служба слушает портВ терминале Fedora выполните
sudo ss -ltnp, затемsudo firewall-cmd --get-active-zones. Найдите нужную службу и её фактический порт; если в выводе ss её нет, сначала запустите или исправьте приложение. Не открывайте произвольный порт ради проверки. - Измените правило только в активной зонеДля активной зоны выполните
sudo firewall-cmd --zone=ИМЯ_ЗОНЫ --list-all(подставьте реальную зону). Если порт должен быть доступен извне, после подтверждения требований и наличия резервного пути доступа добавьте соответствующую *службу* или точный порт по руководству firewalld, сначала временно; проверьте доступ с другого устройства и только затем делайте правило постоянным. Не отключайте весь межсетевой экран. - Проверьте дополнительную причину по результатам диагностикиСначала убедитесь, что приложение действительно слушает нужный порт:
sudo ss -lntupиsudo firewall-cmd --get-active-zones. В активной зоне проверьте разрешённые службыsudo firewall-cmd --zone=НАЗВАНИЕ_ЗОНЫ --list-all(подставьте зону из вывода), отдельно уточните протокол TCP/UDP. Если правило есть, но снаружи не подключиться, проверьте локальный адрес привязки, SELinux и сетевые правила облачного провайдера; новые правила не помогут, если программа вообще не слушает. - Убедитесь в исправлении исходной ошибкиПроверьте подключение со второго устройства в той же сети к реальному адресу сервера и нужному порту. Затем выполните
sudo firewall-cmd --zone=НАЗВАНИЕ_ЗОНЫ --list-allи убедитесь, что разрешение действует в ожидаемой зоне. При открытии постоянного правила перепроверьте результат послеsudo firewall-cmd --reload; если SSH перестал работать, воспользуйтесь заранее подготовленной консолью провайдера и верните старую конфигурацию. - Состояние зоныLinux · Терминал (Bash)КомандаНужен sudoСостояние зоны.
sudo firewall-cmd --list-all
#Если проблема осталась
Если «Fedora: firewalld блокирует порт — как открыть службу или порт» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.