Port: что это такое и как открыть порт на VPS — инструкция для новичка
Port (порт) — числовой адрес программы на сервере: по нему входящее соединение попадает к нужному сервису. В статье вы узнаете, чем порт отличается от IP-адреса, как посмотреть открытые порты командой ss и как открыть нужный через ufw. Все примеры — для VPS на Ubuntu 24.04. Другие определения смотрите в словаре терминов.

Коротко
Главные выводы статьи о теме «Port: как открыть порт на VPS» в семи пунктах:
- Порт — число от 0 до 65535 (16 бит), которое указывает, какой программе на сервере адресован пакет
- Порты 0–1023 — системные, 1024–49151 — зарегистрированные, 49152–65535 — динамические
- Стандартные порты: SSH — 22, HTTP — 80, HTTPS — 443, MySQL — 3306, PostgreSQL — 5432
- Открытые порты на VPS смотрит команда ss -tlnp, проверка занимает около 10 секунд
- Открыть порт в Ubuntu 24.04 — две команды ufw и одна проверка снаружи, около 5 минут
- Порт должен быть открыт в двух местах: в брандмауэре сервера и в панели хостинг-провайдера
- Порты баз данных (3306, 5432) лучше не открывать всему интернету, а ограничить по IP
Что такое port и зачем он нужен серверу
Port (порт) — число от 0 до 65535, которое указывает, какой программе на сервере адресован сетевой пакет. Представьте многоквартирный дом: IP-адрес (Internet Protocol) — это адрес дома, а порт — номер квартиры. Пакет приходит на сервер по IP, а порт подсказывает, кому внутри его отдать: веб-серверу, базе данных или SSH.
Пара «IP + порт» называется сокетом, например 203.0.113.10:443. Один порт занимает одна слушающая программа. Если nginx уже слушает порт 80, второй веб-сервер на нём не запустится и выдаст ошибку address already in use. Предел 65535 задаёт длина номера: он занимает 16 бит.
Порты делятся на три группы:
- 0–1023 — системные, для стандартных служб;
- 1024–49151 — зарегистрированные, для приложений;
- 49152–65535 — динамические, их система выдаёт для исходящих соединений.
На VPS вы чаще всего встретите SSH — 22, HTTP — 80, HTTPS — 443, MySQL — 3306 и PostgreSQL — 5432. Строгое определение читайте в статьях про сетевой порт и про порт в информатике, а дальше разберём, как порты работают на практике.
Как работает порт: слушающий сервис и входящее соединение
Допустим, браузер открывает сайт по адресу 203.0.113.10:443. Пакет приходит на IP-адрес (адрес сервера в сети) 203.0.113.10, и ядро операционной системы смотрит на число после двоеточия. Если процесс, например nginx, заранее сказал ядру «слушаю порт 443», пакет уходит к нему. Дальше процесс принимает соединение и отвечает клиенту.
Состояние порта зависит от того, что происходит с пакетом:
- Открыт — на порту слушает процесс и брандмауэр пропускает пакеты. Соединение устанавливается за доли секунды.
- Закрыт — пакет дошёл до сервера, но там никто не слушает. Ядро сразу отвечает отказом, и клиент видит
Connection refused. - Фильтруется — брандмауэр молча отбрасывает пакет. Клиент ждёт ответа 20–30 секунд и получает таймаут.
У клиента тоже есть порт, но он временный. Ядро выбирает его само: для этого по стандарту отведены динамические порты 49152–65535 (в Linux по умолчанию 32768–60999). После закрытия соединения порт освобождается. Порт сервера, наоборот, постоянный: 443 для HTTPS (HTTP поверх шифрования), 22 для SSH.
Порт работает вместе с протоколом. TCP (Transmission Control Protocol) сначала устанавливает соединение и гарантирует доставку, поэтому его используют веб, SSH и базы данных. UDP (User Datagram Protocol) шлёт пакеты без подтверждения: он быстрее и подходит для DNS и VPN. Подробнее о TCP-портах — в отдельном разборе.

Какие порты чаще всего используют на VPS
Большинство сервисов слушают заранее известные номера. Веб-сервер занимает порты 80 и 443, удалённое управление идёт через порт 22. Эти номера входят в системный диапазон 0–1023, поэтому их знают все клиенты и сканеры.
SSH (Secure Shell) — защищённый вход в консоль сервера. HTTP (HyperText Transfer Protocol) — обычная передача сайтов, HTTPS — то же самое, но с шифрованием. RDP (Remote Desktop Protocol) — удалённый рабочий стол Windows. Подробнее про шифрованный порт читайте в статье о назначении порта 443.
| Порт | Протокол | Сервис | Открывать наружу |
|---|---|---|---|
| 22 | TCP | SSH | Да, лучше только с вашего IP |
| 80, 443 | TCP | HTTP, HTTPS | Да, если на сервере есть сайт |
| 25 | TCP | SMTP (отправка почты) | Только для почтового сервера |
| 3306, 5432 | TCP | MySQL, PostgreSQL | Нет, только по списку IP |
| 3389 | TCP | RDP | Только с вашего IP или через VPN |
| 6379 | TCP | Redis | Нет, только 127.0.0.1 |
Порты баз данных 3306 и 5432 не открывают всему интернету: боты подбирают пароли к ним круглосуточно, а найденная уязвимость даёт доступ ко всем данным сайта. Если базу нужно подключить с другого сервера, разрешите доступ только с его адреса.
Redis опаснее: по умолчанию он работает без пароля. Любой, кто достучится до порта 6379, читает и стирает данные командой FLUSHALL за секунду. Оставьте в /etc/redis/redis.conf строку bind 127.0.0.1, тогда сервис доступен только самому серверу.
Как посмотреть открытые порты на сервере
Подключитесь к VPS по SSH (Secure Shell, защищённое удалённое управление) и выполните команду sudo ss -tlnp. Проверка занимает около 10 секунд. Без sudo список портов появится, но колонка с именем программы останется пустой.
Флаги команды: t показывает TCP (Transmission Control Protocol), l — только слушающие порты, n — числа вместо имён служб (22 вместо ssh), p — процесс, который занял порт. Для UDP (User Datagram Protocol) запустите sudo ss -ulnp.
Разберём одну строку: LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812)). Адрес 0.0.0.0 значит, что служба принимает соединения на всех сетевых интерфейсах, в том числе из интернета. Порт 22 занял sshd. Строка 127.0.0.1:3306 означает другое: MySQL слушает только внутри сервера. Адрес 127.0.0.1 — это сам сервер, пакеты на него не выходят в сеть, поэтому снаружи подключиться нельзя.
Локальный список не показывает, доходит ли трафик до сервера. Для проверки снаружи выполните с домашнего компьютера nc -zv IP 22, где IP — адрес вашего VPS. Ответы читайте так:
succeeded— порт открыт и служба отвечает;refused— сервер доступен, но на порту никто не слушает;- зависание на 10–30 секунд — пакеты режет брандмауэр или панель хостинга.

Как открыть порт на VPS: пошаговая инструкция для Ubuntu 24.04
Порт нужно открыть в двух местах: в брандмауэре самого сервера и в панели хостинг-провайдера. Если пропустить любое из них, соединение не пройдёт. Ниже разберём первое: в Ubuntu 24.04 для этого служит утилита ufw (Uncomplicated Firewall, «простой брандмауэр»).
Пример: открываем порт 8080/tcp для веб-приложения. Вся процедура занимает около 5 минут: две команды ufw и одна проверка снаружи. Своего сервера пока нет — выберите его в подборке VPS.
Как открыть порт 8080 через ufw по шагам:
- Подключитесь по SSH (Secure Shell) на порт 22:
ssh root@IP-адрес. - Проверьте состояние брандмауэра:
sudo ufw status. Ответinactiveзначит, что правил пока нет. - Сначала разрешите SSH:
sudo ufw allow 22/tcp. Иначе после включения файрвола вы потеряете доступ к серверу. - Откройте нужный порт:
sudo ufw allow 8080/tcp. - Включите брандмауэр:
sudo ufw enableи подтвердите ответомy. - Сверьте правила:
sudo ufw status numbered. В списке должны быть22/tcpи8080/tcp. - Запустите сервис и убедитесь, что он слушает порт:
ss -tlnp | grep 8080. - С другого компьютера проверьте доступность:
nc -zv IP-адрес 8080. Ответsucceededозначает успех.
Чтобы закрыть порт, найдите номер правила в sudo ufw status numbered и удалите его: sudo ufw delete 2. Либо удалите по описанию: sudo ufw delete allow 8080/tcp.
Если nc выдаёт таймаут, а на сервере всё верно, проверьте файрвол в панели провайдера. У многих он включается отдельно, и правило для 8080/tcp нужно добавить и там.

Посмотреть VPS с готовыми образами Ubuntu
Возьмите сервер с Ubuntu 24.04 и попробуйте инструкцию из статьи на практике.
Порт открыт, а соединения нет: где ошибка
Вы выполнили ufw allow 8080, а сайт всё равно не открывается. Чаще всего сервис слушает только 127.0.0.1 или порт закрыт в панели провайдера — причина почти всегда в одном из пяти мест, и каждое проверяется за 1–2 минуты.
Первая ошибка: сервис слушает только 127.0.0.1
Выполните ss -tlnp | grep 8080. Если видите 127.0.0.1:8080, программа доступна лишь изнутри.
Как решить: замените адрес в её конфиге на 0.0.0.0 и перезапустите сервис.
Вторая ошибка: порт закрыт в панели провайдера
Правило в ufw не действует, если внешний файрвол хостинга блокирует трафик раньше. Откройте порт в панели VPS (Virtual Private Server, виртуальный сервер).
Третья ошибка: перепутан протокол
Правило ufw allow 51820/tcp не пропустит UDP (User Datagram Protocol). Для нужного протокола выполните ufw allow 51820/udp.
Четвёртая ошибка: порт занят
Ошибка Address already in use значит, что другая программа уже слушает этот порт. Найдите её командой ss -tlnp | grep :80: в колонке users будет имя процесса и его PID.
Пятая ошибка: ufw включён без разрешения SSH
После ufw enable порт 22 закрывается, и вы теряете доступ к серверу. Всегда выполняйте ufw allow 22/tcp до ufw enable.
Как решить, если доступ уже потерян: зайдите через консоль в панели провайдера и выполните ufw allow 22/tcp.
Начинайте с самого сервера: убедитесь, что программа вообще принимает соединения снаружи, и только потом ищите проблему в сети. Если хотите избежать таких сюрпризов, выберите VPS с удобной веб-консолью.
Как закрыть лишние порты и безопасно сменить стандартные
Действуйте по принципу минимальных прав: открыт только тот порт, который нужен работающему сервису. Всё остальное закройте в брандмауэре. Сверяйте список с выводом ss -tlnp: если порт слушает программа, которой вы не пользуетесь, остановите её или закройте порт.
Порты баз данных, 3306 у MySQL и 5432 у PostgreSQL, не открывайте всему интернету. Разрешите доступ только с вашего адреса: sudo ufw allow from 198.51.100.7 to any port 3306. Тогда подключиться к базе сможет один IP-адрес, а остальные пакеты будут отброшены. Про открытие сразу нескольких портов читайте в статье про диапазон портов.
Порт SSH (Secure Shell, защищённое подключение) можно сменить с 22 на нестандартный, например 2222. Это не защита, а фильтр от шума: боты перебирают в первую очередь порт 22. На свежем VPS в /var/log/auth.log обычно видно от 500 до 3000 попыток подбора пароля в сутки, после смены порта их становится в разы меньше. Ключи SSH и отключение входа по паролю это не заменяет.
Как сменить порт SSH, не потеряв доступ к серверу:
- Сначала откройте новый порт:
sudo ufw allow 2222/tcp. - Укажите
Port 2222в/etc/ssh/sshd_configи перезапустите службу:sudo systemctl restart ssh. - Проверьте вход с новым портом во втором окне терминала, прежде чем закрывать первое.
- Только после этого удалите правило для порта 22.
Дополнительно поставьте Fail2ban: программа блокирует IP-адрес после нескольких неудачных попыток входа, например после 5 за 10 минут.
Порт, диапазон портов и firewall: в чём разница и что выбрать
Один порт — это одна дверь для одной программы: например, 443/tcp для сайта по HTTPS. Диапазон — это сразу много дверей, например 50000:50100/tcp, то есть 101 порт. Firewall (брандмауэр) решает, какие двери открыты, а какие заперты.
Диапазон оправдан, когда программа сама выбирает порт из заданного набора. Классический случай — пассивный FTP (File Transfer Protocol, протокол передачи файлов): сервер отдаёт данные на случайном порту из диапазона, который вы задали в его настройках. Если диапазон нужен «на всякий случай», не открывайте его: каждый лишний порт увеличивает поверхность атаки. Сужайте диапазон до реально нужного размера, например до 50–100 портов.
Проброс порта (port forwarding) перенаправляет трафик с одного порта на другой или на внутренний адрес. Он нужен, когда сервис слушает нестандартный порт, а снаружи должен отвечать на стандартном. Для новичка проброс почти всегда лишний.
Когда какой вариант использовать:
- один порт — для одного сервиса: SSH, HTTP, HTTPS;
- диапазон — только если программа этого требует, например пассивный FTP;
- проброс — когда нужно переадресовать трафик;
- «закрыть всё, кроме нужного» — политика по умолчанию, с которой стоит начинать;
- порты баз данных
3306и5432— только для доверенных IP.
Управлять правилами проще всего через ufw. Он надстройка над iptables и nftables, и для начала вам хватит только его. Если нужны сложные схемы с пробросами и несколькими сетями, выбирайте VPS с гибкой настройкой сети. Сколько всего портов существует, разобрано в статье про количество портов.
Для кого ручная настройка портов не подходит
Если у вас виртуальный хостинг с панелью (ISPmanager, cPanel), доступа к ufw там нет: порты задаёт провайдер, а вам достаются готовые 80 и 443. Команды из этой статьи на таком тарифе не сработают, и это нормально.
Если вам нужен только сайт, ручная настройка не требуется. Оставьте открытыми порты 80 (HTTP) и 443 (HTTPS), остальное отдайте готовой панели. На управляемом VPS настройку делает техподдержка: напишите в тикет, какой порт нужен, и его откроют, как правило, за 10–30 минут.
Если сервер нужен для своих задач, а возиться с брандмауэром не хочется, выберите готовый образ ОС с настроенным файрволом. Он стартует с закрытыми лишними портами, а вы открываете только нужные.
Какой вариант подходит под вашу задачу:
- Только сайт: порты 80 и 443 плюс панель управления.
- Управляемый VPS: заявка в поддержку.
- Свой сервис или база данных: ручная настройка через
ufw. Порты 3306 (MySQL) и 5432 (PostgreSQL) не открывайте всему интернету, а ограничьте по IP-адресу.
Если нужен полный контроль, потренируйтесь на тестовом VPS: открытие порта займёт около 5 минут. Результат проверяйте командой ss -tlnp, она отработает за 10 секунд.
Частые вопросы
Что такое порт простыми словами?
Как узнать, какие порты открыты на моём сервере?
sudo ss -tlnp. Команда покажет все TCP-порты, которые слушают программы, и названия процессов. Для UDP используйте sudo ss -ulnp.Как открыть порт на VPS в Ubuntu?
sudo ufw allow 8080/tcp, замените номер на нужный. Если ufw выключен, сначала разрешите порт SSH командой sudo ufw allow 22/tcp, затем включите ufw через sudo ufw enable.Почему порт открыт в ufw, но не отвечает?
ss -tlnp. Также посмотрите файрвол в панели провайдера: он может блокировать порт раньше сервера.Как проверить, открыт ли порт снаружи?
nc -zv IP-адрес 8080 или воспользуйтесь онлайн-проверкой порта. Ответ succeeded означает, что порт доступен. Проверяйте не с самого сервера, иначе файрвол не участвует.Сколько всего портов и какие можно использовать?
Стоит ли менять порт SSH с 22?
Чем TCP-порт отличается от UDP-порта?
Как закрыть порт на сервере?
sudo ufw delete allow 8080/tcp и остановите программу, которая его слушает. Так порт закроется и на уровне файрвола, и на уровне сервиса.Можно ли открыть все порты сразу?
Итоговый чек-лист
Используйте этот список как финальную проверку: каждый пункт — короткий вывод из статьи выше. Отметьте для себя, что уже сделано, а что осталось.
- Знаете, какой сервис и по какому протоколу (TCP или UDP) должен принимать соединения
- Порт 22 (или новый порт SSH) разрешён до включения ufw
- Нужный порт открыт и в ufw, и в файрволе панели провайдера
- Команда ss -tlnp показывает, что сервис слушает 0.0.0.0, а не только 127.0.0.1
- Доступность проверена с другого компьютера командой nc -zv
- Порты баз данных ограничены по IP или закрыты для интернета
Если какой-то пункт пока не выполнен, вернитесь к нужному разделу статьи — там разобрано, как это сделать и на чём чаще всего ошибаются.
Источники
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.