Linux: UFW блокирует порт — как открыть и проверить правила

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

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

Проверьте ufw status verbose, добавьте разрешающее правило и убедитесь, что служба слушает порт. Сначала разрешите SSH, чтобы не потерять доступ.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Если не помогло
  5. Состояние и правила
  6. Открытие портов
  7. Управление
  8. Docker, IPv6 и типичные ошибки

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

Сообщение
Порт закрыт

UFW (Uncomplicated Firewall) по умолчанию блокирует входящие соединения, поэтому после запуска веб-сервера, SSH или другого сервиса его порты могут быть недоступны извне. Нужно явно открыть порт.

Будьте осторожны: перед включением UFW на удалённом сервере разрешите SSH, иначе потеряете доступ.

Проверка состояния — первая команда.

Проверьте ufw status verbose, добавьте разрешающее правило и убедитесь, что служба слушает порт. Сначала разрешите SSH, чтобы не потерять доступ.

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

Возможная причинаКак узнатьЧто делать
Нет правилаUFW.Закрыт.Добавьте.
Служба не слушаетss.Закрыт.Запустите.
Облачный файрволПровайдер.Закрыт.Откройте.
Порядок правилDeny.Закрыт.Проверьте.

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

  1. Проверьте правилаПодключитесь к своему серверу по SSH или откройте локальный терминал и выполните sudo ufw status verbose. Посмотрите, включён ли UFW (Status: active) и есть ли разрешение для нужного порта и протокола. Перед изменениями выясните, откуда вы подключены: если доступ только по SSH, новый запрет может оборвать управление. Если UFW не активен, причину блокировки ищите также в другом брандмауэре или у облачного провайдера.
  2. Убедитесь, что сервис слушает портОткройте терминал на устройстве или подключитесь по SSH к нужному серверу. Выполните ss -tlnp и прочитайте вывод: команда покажет слушающие TCP-порты и связанные с ними процессы. Найдите нужный номер порта; при необходимости запустите sudo ss -tlnp, чтобы увидеть имена процессов. Если строки с портом нет, служба его не слушает. Если команда не найдена, сначала убедитесь, что нужная программа установлена.
  3. Разрешите SSHПеред включением или изменением UFW на удалённом сервере узнайте фактический SSH-порт из конфигурации sshd и добавьте правило, сохраняющее доступ с вашего адреса. Для стандартного порта пример: sudo ufw allow 22/tcp; на нестандартном укажите реальный порт. Оставьте текущую SSH-сессию открытой и проверьте второе подключение с отдельного терминала. Только после этого применяйте более строгие правила; не запускайте ufw enable вслепую.
  4. Откройте нужный портАдминистратору: сначала убедитесь, что порт нужен именно вашему приложению и сервис его слушает (sudo ss -lntup). Для HTTPS на 443/TCP пример правила: sudo ufw allow 443/tcp, затем sudo ufw status numbered. Для другого порта и UDP замените число/протокол на реальные; лучше ограничить источники там, где это возможно. Проверьте доступ с внешнего устройства, затем удалите временное правило, если оно оказалось ненужным. Не открывайте диапазон всех портов.
  5. Проверьте доступность снаружиС другого устройства за пределами сервера откройте https://ваш-домен или выполните nc -vz ИМЯ_СЕРВЕРА ПОРТ, заменив заглушки действительными значениями. Если соединение не устанавливается, сопоставьте результаты с sudo ss -lntup и sudo ufw status numbered на сервере, а также правилами облачного провайдера. Успех локального подключения не доказывает доступности из интернета. Не публикуйте административные порты без необходимости.
  6. Состояние UFW
    Linux · Терминал (Bash)КомандаНужен sudo
    Состояние UFW.
    sudo ufw status verbose

#Если не помогло

Перед включением UFW разрешите порт SSH, иначе можно потерять удалённый доступ.

#Состояние и правила

sudo ufw status verbose покажет статус и правила. Проверьте, что нужный порт слушается: ss -tlnp. Если сервис слушает только 127.0.0.1, извне он недоступен независимо от UFW.

#Открытие портов

Разрешить порт: sudo ufw allow 80/tcp, sudo ufw allow 443/tcp, sudo ufw allow 22/tcp. По профилю: sudo ufw allow "Nginx Full" (список sudo ufw app list). Из определённой сети: sudo ufw allow from 192.168.1.0/24 to any port 3306. Диапазон: sudo ufw allow 6000:6010/tcp.

#Управление

Удалить правило: sudo ufw delete allow 80/tcp или по номеру sudo ufw status numbered → sudo ufw delete N. Включить/выключить: sudo ufw enable, sudo ufw disable. Логи: sudo ufw logging on, смотрите /var/log/ufw.log. Docker обходит UFW через iptables: публикуйте порты осознанно.

Linux · Терминал (Bash)КомандаНужен sudo
Команды только проверяют настройки и слушающие порты. На удалённом сервере перед любым ufw enable подтвердите разрешение именно действующего SSH-порта и наличие резервного канала управления; правила создавайте вручную по условиям шага.
sudo ufw status verbose
sudo ss -lntup
sudo ufw status numbered

#Docker, IPv6 и типичные ошибки

Docker вставляет свои правила в цепочку DOCKER iptables, поэтому порт, опубликованный через -p 8080:80, доступен снаружи, даже если UFW его не разрешал. Чтобы ограничить доступ, публикуйте порт на localhost (-p 127.0.0.1:8080:80) или настройте цепочку DOCKER-USER. Если UFW включён, но IPv6-правила не применяются, проверьте IPV6=yes в /etc/default/ufw. Типичная ошибка — открыть порт в UFW, но забыть открыть его в облачной группе безопасности провайдера, и наоборот.

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

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

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