vpsguru Обновлено 22.07.2026

Port: что это такое и как открыть порт на VPS — инструкция для новичка

Обновлено 23 октября 2026 Чтение 11 мин Раздел: Словарь терминов: сеть, порты и работа с VPS

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

Port: что это такое и как открыть порт на VPS — инструкция для новичка

Коротко

Главные выводы статьи о теме «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-портах — в отдельном разборе.

Схема: запрос клиента к серверу через порт 443
Запрос приходит на IP-адрес, а порт определяет, какая программа его получит

Какие порты чаще всего используют на 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 секунд — пакеты режет брандмауэр или панель хостинга.
Терминал Ubuntu с выводом ss -tlnp и списком слушающих портов
Вывод команды ss -tlnp: порты 22, 80 и 443 слушают все адреса, порт 3306 — только localhost (иллюстрация интерфейса)

Как открыть порт на VPS: пошаговая инструкция для Ubuntu 24.04

Порт нужно открыть в двух местах: в брандмауэре самого сервера и в панели хостинг-провайдера. Если пропустить любое из них, соединение не пройдёт. Ниже разберём первое: в Ubuntu 24.04 для этого служит утилита ufw (Uncomplicated Firewall, «простой брандмауэр»).

Пример: открываем порт 8080/tcp для веб-приложения. Вся процедура занимает около 5 минут: две команды ufw и одна проверка снаружи. Своего сервера пока нет — выберите его в подборке VPS.

Как открыть порт 8080 через ufw по шагам:

  1. Подключитесь по SSH (Secure Shell) на порт 22: ssh root@IP-адрес.
  2. Проверьте состояние брандмауэра: sudo ufw status. Ответ inactive значит, что правил пока нет.
  3. Сначала разрешите SSH: sudo ufw allow 22/tcp. Иначе после включения файрвола вы потеряете доступ к серверу.
  4. Откройте нужный порт: sudo ufw allow 8080/tcp.
  5. Включите брандмауэр: sudo ufw enable и подтвердите ответом y.
  6. Сверьте правила: sudo ufw status numbered. В списке должны быть 22/tcp и 8080/tcp.
  7. Запустите сервис и убедитесь, что он слушает порт: ss -tlnp | grep 8080.
  8. С другого компьютера проверьте доступность: nc -zv IP-адрес 8080. Ответ succeeded означает успех.

Чтобы закрыть порт, найдите номер правила в sudo ufw status numbered и удалите его: sudo ufw delete 2. Либо удалите по описанию: sudo ufw delete allow 8080/tcp.

Если nc выдаёт таймаут, а на сервере всё верно, проверьте файрвол в панели провайдера. У многих он включается отдельно, и правило для 8080/tcp нужно добавить и там.

Терминал с командами ufw allow 8080/tcp и ufw status numbered
Правило для порта 8080/tcp добавлено, статус ufw показывает его в списке (иллюстрация интерфейса)

Посмотреть VPS с готовыми образами Ubuntu

Возьмите сервер с Ubuntu 24.04 и попробуйте инструкцию из статьи на практике.

Открыть рейтинг VPS

Порт открыт, а соединения нет: где ошибка

Вы выполнили 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 секунд.

Частые вопросы

Что такое порт простыми словами?
Порт — число от 0 до 65535, которое вместе с IP-адресом указывает, какой программе на сервере предназначен пакет. IP-адрес — это дом, порт — номер квартиры.
Как узнать, какие порты открыты на моём сервере?
Подключитесь по SSH и выполните 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, но не отвечает?
Скорее всего, программа не запущена или слушает только 127.0.0.1. Проверьте вывод ss -tlnp. Также посмотрите файрвол в панели провайдера: он может блокировать порт раньше сервера.
Как проверить, открыт ли порт снаружи?
С другого компьютера выполните nc -zv IP-адрес 8080 или воспользуйтесь онлайн-проверкой порта. Ответ succeeded означает, что порт доступен. Проверяйте не с самого сервера, иначе файрвол не участвует.
Сколько всего портов и какие можно использовать?
Всего 65 536 значений, от 0 до 65535. Свои сервисы обычно ставят на порты выше 1024, чтобы не пересекаться с системными. Порт 0 зарезервирован.
Стоит ли менять порт SSH с 22?
Смена на нестандартный, например 2222, уменьшает количество попыток подбора в логах, но не защищает сама по себе. Главное — вход по ключу и отключённый вход root по паролю. Перед сменой откройте новый порт в ufw и проверьте его в отдельной сессии.
Чем TCP-порт отличается от UDP-порта?
Это разные пространства: порт 53/tcp и 53/udp — два независимых порта. В правиле ufw нужно указать протокол, иначе оно откроет оба. Веб-сайты работают по TCP, многие игры и DNS-запросы — по UDP.
Как закрыть порт на сервере?
Удалите правило командой sudo ufw delete allow 8080/tcp и остановите программу, которая его слушает. Так порт закроется и на уровне файрвола, и на уровне сервиса.
Можно ли открыть все порты сразу?
Технически да, но так делать не стоит: любой запущенный сервис станет доступен из интернета. Открывайте только нужные порты и, где возможно, ограничивайте доступ по IP-адресу.

Итоговый чек-лист

Используйте этот список как финальную проверку: каждый пункт — короткий вывод из статьи выше. Отметьте для себя, что уже сделано, а что осталось.

  • Знаете, какой сервис и по какому протоколу (TCP или UDP) должен принимать соединения
  • Порт 22 (или новый порт SSH) разрешён до включения ufw
  • Нужный порт открыт и в ufw, и в файрволе панели провайдера
  • Команда ss -tlnp показывает, что сервис слушает 0.0.0.0, а не только 127.0.0.1
  • Доступность проверена с другого компьютера командой nc -zv
  • Порты баз данных ограничены по IP или закрыты для интернета

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

Источники

На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.