Порти: які відкривати і як перевіряти
Які порти потрібні типовим сервісам, як побачити, що машина слухає, як перевірити зовнішню доступність і що робити, якщо порт закритий.
Оновлено 23 серпня 2026 р.
Порт — це число, яке вказує системі, якій службі має надійти вхідне з'єднання. Правило просте: відкритим має бути лише те, чим ви справді користуєтеся. Кожен зайвий відкритий порт — це ще одні двері, у яких хтось перевірятиме слабкі місця.
Поширені номери портів
| Порт | Служба | Відкритий назовні |
|---|---|---|
| 22 | SSH | Так, бажано з обмеженням за адресою |
| 80 | HTTP | Так, якщо у вас є сайт |
| 443 | HTTPS | Так, якщо у вас є сайт |
| 25, 465, 587 | Пошта | Вхідні — лише якщо ви тримаєте власний поштовий сервер. Вихідні закриті з нашого боку та відкриваються на запит |
| 3306 | MySQL | Ні, лише локально |
| 5432 | PostgreSQL | Ні, лише локально |
| 6379 | Redis | Ні, лише локально |
| 27017 | MongoDB | Ні, лише локально |
| 25565 | Minecraft | Так, якщо це ігровий сервер |
Зауваження щодо пошти: вхідні з'єднання не обмежуються, а вихідні на 25, 465 і 587 закриті на рівні вузла, доки ви не попросите нас їх відкрити. Правила всередині машини цього не змінюють — деталі дивіться в Поштовий сервер: чому це складно і що врахувати.
Бази даних майже ніколи не виставляють назовні. Якщо потрібен доступ з робочого комп'ютера, правильний шлях — SSH-тунель, а не відкритий порт:
ssh -L 5432:127.0.0.1:5432 artem@<address>
Що слухає машина
ss -tulpn
ss -tlpn | grep 443
lsof -i -P -n | grep LISTEN
Подивіться на адресу перед номером порту. 127.0.0.1:5432 означає, що служба доступна лише зсередини — до неї не дістатися ззовні, скільки б правил ви не додали. 0.0.0.0:5432 означає, що служба відкрита на всіх мережевих інтерфейсах і її потрібно захищати фаєрволом.
Перевірка ззовні
Зі свого комп'ютера:
nc -vz <address> 443
curl -I http://<address>
Перевіряти через ping безглуздо: ICMP і TCP — різні речі; порт може працювати, коли ping заблоковано, і навпаки.
Порт закритий: покрокова діагностика
- Служба запущена?
systemctl status <service> - Вона слухає правильну адресу?
ss -tulpn— не127.0.0.1 - Фаєрвол її пропускає?
ufw status verboseабоnft list ruleset - Чи не заважає Docker? Опубліковані порти контейнерів обходять ufw
- Перегляньте логи служби:
journalctl -u <service> -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 і зупиніть зайву службу |
Відкривайте порт лише після перевірки, що на ньому відповідає. Забутий порт зі старого експерименту — типова точка входу для зламу; дивіться ознаки компрометації.