VDS · Сеть, адрес и домены

Порты: какие открыть и как проверить

Какие порты нужны типовым службам, как посмотреть, что слушает машина, как проверить доступность снаружи и что делать, если порт закрыт.

Обновлено 23 августа 2026 г.

Порт — это номер, по которому система понимает, какой службе отдать пришедшее подключение. Правило простое: открытым должно быть только то, чем вы действительно пользуетесь. Каждый лишний открытый порт — это ещё одна дверь, которую кто-то будет проверять на прочность.

Типовые номера

ПортСлужбаОткрывать наружу
22SSHДа, лучше с ограничением по адресу
80HTTPДа, если есть сайт
443HTTPSДа, если есть сайт
25, 465, 587ПочтаВходящие — только если сами держите почтовый сервер. Исходящие закрыты у нас и открываются по заявке
3306MySQLНет, только локально
5432PostgreSQLНет, только локально
6379RedisНет, только локально
27017MongoDBНет, только локально
25565MinecraftДа, если это игровой сервер

Отдельно про почту: входящие соединения не ограничены, а исходящие на 25, 465 и 587 закрыты на стороне узла, пока вы не попросите их открыть. Правила внутри машины этого не меняют — подробности в статье Почтовый сервер: почему это сложно и что нужно учесть.

Базы данных наружу не публикуют почти никогда. Если доступ нужен вам с рабочего компьютера, правильный путь — туннель поверх SSH, а не открытый порт:

ssh -L 5432:127.0.0.1:5432 artem@<адрес>

Что слушает машина

ss -tulpn
ss -tlpn | grep 443
lsof -i -P -n | grep LISTEN

Смотрите на адрес перед номером порта. 127.0.0.1:5432 означает, что служба доступна только изнутри — снаружи её нет, сколько бы правил вы ни добавляли. 0.0.0.0:5432 — служба открыта всем сетевым интерфейсам, и её должен прикрывать брандмауэр.

Проверка снаружи

С вашего компьютера:

nc -vz <адрес> 443
curl -I http://<адрес>

Проверять пингом бессмысленно: ICMP и TCP — разные вещи, порт может работать при закрытом пинге и наоборот.

Порт закрыт: разбор по шагам

  1. Служба запущена? systemctl status <служба>
  2. Слушает нужный адрес? ss -tulpn — не 127.0.0.1
  3. Пропускает брандмауэр? ufw status verbose или nft list ruleset
  4. Не мешает ли Docker? Проброшенные порты контейнеров обходят ufw
  5. Смотрите логи службы: journalctl -u <служба> -n 50

Порядок именно такой: чаще всего проблема на втором шаге, а не в брандмауэре.

Сменить порт службы

Например, перенести SSH:

sed -i "s/^#\?Port 22/Port 2222/" /etc/ssh/sshd_config
ufw allow 2222/tcp
sshd -t
systemctl restart ssh

Проверьте вход на новый порт в отдельном окне, и только потом убирайте правило для 22. Подробности — укрепление SSH.

Частые ошибки

СимптомПричинаРешение
Connection refusedСлужба не запущенаsystemctl status, смотреть логи
Connection timed outПакет отбрасывается брандмауэромПроверить правила
Работает локально, не работает снаружиПривязка к 127.0.0.1Изменить адрес в конфиге
Address already in useПорт занят другой службойss -tulpn и остановить лишнее

Открывайте порт только вместе с проверкой, кто на нём отвечает. Забытый порт от старого эксперимента — типичная точка входа при взломе, см. признаки взлома.