#Что означает ошибка
Порт закрыт
UFW (Uncomplicated Firewall) по умолчанию блокирует входящие соединения, поэтому после запуска веб-сервера, SSH или другого сервиса его порты могут быть недоступны извне. Нужно явно открыть порт.
Будьте осторожны: перед включением UFW на удалённом сервере разрешите SSH, иначе потеряете доступ.
Проверка состояния — первая команда.
Проверьте ufw status verbose, добавьте разрешающее правило и убедитесь, что служба слушает порт. Сначала разрешите SSH, чтобы не потерять доступ.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет правилаUFW. | Закрыт. | Добавьте. |
| Служба не слушаетss. | Закрыт. | Запустите. |
| Облачный файрволПровайдер. | Закрыт. | Откройте. |
| Порядок правилDeny. | Закрыт. | Проверьте. |
#Пошаговое решение
- Проверьте правилаПодключитесь к своему серверу по SSH или откройте локальный терминал и выполните
sudo ufw status verbose. Посмотрите, включён ли UFW (Status: active) и есть ли разрешение для нужного порта и протокола. Перед изменениями выясните, откуда вы подключены: если доступ только по SSH, новый запрет может оборвать управление. Если UFW не активен, причину блокировки ищите также в другом брандмауэре или у облачного провайдера. - Убедитесь, что сервис слушает портОткройте терминал на устройстве или подключитесь по SSH к нужному серверу. Выполните
ss -tlnpи прочитайте вывод: команда покажет слушающие TCP-порты и связанные с ними процессы. Найдите нужный номер порта; при необходимости запуститеsudo ss -tlnp, чтобы увидеть имена процессов. Если строки с портом нет, служба его не слушает. Если команда не найдена, сначала убедитесь, что нужная программа установлена. - Разрешите SSHПеред включением или изменением UFW на удалённом сервере узнайте фактический SSH-порт из конфигурации sshd и добавьте правило, сохраняющее доступ с вашего адреса. Для стандартного порта пример:
sudo ufw allow 22/tcp; на нестандартном укажите реальный порт. Оставьте текущую SSH-сессию открытой и проверьте второе подключение с отдельного терминала. Только после этого применяйте более строгие правила; не запускайтеufw enableвслепую. - Откройте нужный портАдминистратору: сначала убедитесь, что порт нужен именно вашему приложению и сервис его слушает (
sudo ss -lntup). Для HTTPS на 443/TCP пример правила:sudo ufw allow 443/tcp, затемsudo ufw status numbered. Для другого порта и UDP замените число/протокол на реальные; лучше ограничить источники там, где это возможно. Проверьте доступ с внешнего устройства, затем удалите временное правило, если оно оказалось ненужным. Не открывайте диапазон всех портов. - Проверьте доступность снаружиС другого устройства за пределами сервера откройте
https://ваш-доменили выполнитеnc -vz ИМЯ_СЕРВЕРА ПОРТ, заменив заглушки действительными значениями. Если соединение не устанавливается, сопоставьте результаты сsudo ss -lntupиsudo ufw status numberedна сервере, а также правилами облачного провайдера. Успех локального подключения не доказывает доступности из интернета. Не публикуйте административные порты без необходимости. - Состояние UFWLinux · Терминал (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: публикуйте порты осознанно.
sudo ufw status verbosesudo ss -lntupsudo 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, но забыть открыть его в облачной группе безопасности провайдера, и наоборот.