Порты сервера: что это и какие номера за что отвечают
Порт — это номер, по которому сервер понимает, какой программе отдать подключение: сайту, SSH или базе данных. Ниже — таблица номеров, которые встретятся при работе с хостингом и VPS, и что делать с каждым из них.
Содержание 9
Что такое порт
У сервера один IP-адрес, а программ, которые ждут подключений, несколько: сайт, SSH, база данных. Чтобы их различать, у каждой свой номер — порт. Если IP-адрес — это адрес дома, то порт — номер квартиры.
Номер порта можно написать в адресе после двоеточия: http://example.com:8080. Для сайтов его не пишут: браузер сам подставляет 80 для адресов http:// и 443 для https://.
«Программа слушает порт» значит, что программа запущена и ждёт подключений на этом номере. «Порт открыт» — фаервол пропускает к нему подключения снаружи. Чтобы к программе можно было подключиться, нужно и то и другое.
Таблица портов
| Порт | Что на нём работает | Открывать на VPS |
|---|---|---|
| 22 | SSH — подключение к серверу из терминала | Да, иначе вы не попадёте на сервер — подробнее |
| 25 | Передача писем между почтовыми серверами | Только для своего почтового сервера — подробнее |
| 53 | DNS — ответ на вопрос «какой IP у домена» | Только если на сервере работает свой DNS-сервер |
| 80 | Сайты по адресу http:// | Да, если на сервере сайт — подробнее |
| 443 | Сайты по адресу https:// | Да, если на сервере сайт |
| 465 | Отправка писем из почтовой программы | Только для своего почтового сервера |
| 587 | Отправка писем из почтовой программы | Только для своего почтового сервера |
| 993 | Чтение почты по IMAP | Только для своего почтового сервера |
| 995 | Чтение почты по POP3 | Только для своего почтового сервера |
| 3306 | Базы данных MySQL и MariaDB | Нет, подключайтесь через SSH-туннель — подробнее |
| 3389 | Удалённый рабочий стол Windows | Да, на VPS с Windows — подробнее |
| 5432 | База данных PostgreSQL | Нет, подключайтесь через SSH-туннель — подробнее |
Это номера по умолчанию: программа берёт такой номер, если в её настройках не указан другой. Номер можно сменить — тогда при подключении придётся указывать новый.
Три группы номеров
Номера портов — от 0 до 65535. Стандарт RFC 6335 делит их на три группы:
- 0–1023 — системные порты. На них работают основные службы: SSH, сайты, почта, DNS. Номера назначает организация IANA.
- 1024–49151 — пользовательские порты. Их тоже назначает IANA, по заявкам разработчиков программ.
- 49152–65535 — динамические порты. Их никому не назначают.
Для своей программы — например, бота или сайта на Node.js — возьмите свободный номер из второй группы: 3000, 8000 или 8080. Свободен ли номер, покажет команда из раздела ниже.
TCP и UDP
Подключение к порту идёт по одному из двух протоколов: TCP или UDP. SSH, сайты, почта и базы данных из таблицы работают по TCP. DNS отвечает и по UDP, и по TCP.
Поэтому в командах фаервола рядом с номером пишут протокол: 80/tcp. Команда sudo ufw allow 53 без протокола откроет порт 53 и для TCP, и для UDP.
Как узнать, какие порты слушает сервер
Команды для сервера вводятся после подключения к нему по SSH (как подключиться). Введите:
sudo ss -tlnpКлючи команды: -t — только TCP, -l — только порты, которые ждут подключений, -n — номера цифрами, -p — какая программа слушает порт. Для UDP вместо -t пишут -u. Пример строки ответа:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))В колонке Local Address:Port — адрес и порт. 0.0.0.0:80 значит, что программа ждёт подключений на всех адресах сервера: снаружи к ней подключатся, если пропустит фаервол. 127.0.0.1 — только программы на самом сервере. В колонке Process — имя программы, здесь nginx.
Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.
Что делать дальше
- Как открыть порт на VPS — как пропустить подключения к порту через фаервол.
- Как проверить, открыт ли порт — проверка с вашего компьютера.
- Как узнать, какая программа заняла порт — если программа пишет, что порт занят.
Ошибки и как их исправить
| Ошибка | Что случилось | Разбор |
|---|---|---|
| ERR_CONNECTION_REFUSED в браузере | Сервер отказал в подключении к порту | Разбор |
| ERR_CONNECTION_TIMED_OUT в браузере | Подключение к порту не дошло до сервера | Разбор |
| ERR_UNSAFE_PORT в браузере | Браузер не открывает адреса с этим номером порта | Разбор |
Connection refused при подключении по SSH | Сервер отказал в подключении к порту SSH | Разбор |
Connection timed out при подключении по SSH | Подключение не дошло до сервера | Разбор |
Address already in use у nginx | Порт занят другой программой | Разбор |
port is already allocated у Docker | Порт занят другой программой или контейнером | Разбор |
Can't connect to MySQL server | Подключение к порту базы не прошло | Разбор |
Источники
- RFC 6335, раздел 6 — три диапазона номеров портов: 0–1023, 1024–49151 и 49152–65535.
- RFC 9110, раздел 4.2 — для адресов http:// порт по умолчанию 80, для https:// — 443.
- RFC 4253, раздел 4.1 — сервер SSH ждёт подключений на порту 22.
- RFC 5321, раздел 4.5.4.2 — почтовые серверы принимают письма на порту 25.
- RFC 6409, раздел 3.1 — порт 587 для отправки писем из почтовой программы.
- RFC 8314, раздел 3 — порты 465, 993 и 995: шифрование начинается сразу после подключения.
- RFC 1035, раздел 4.2 — DNS работает на порту 53 по UDP и TCP.
- Исходный код MySQL 8.0.46: mysql_version.cmake — порт по умолчанию 3306.
- PostgreSQL 16: подключения — порт 5432, listen_addresses по умолчанию localhost.
- Microsoft: порт удалённого рабочего стола — порт 3389, как его сменить и открыть в брандмауэре.
- Справка ss для Ubuntu 24.04 — ключи -t, -u, -l, -n и -p.
- Справка ufw для Ubuntu 24.04 — команды allow, deny, reject, limit, delete и status numbered.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026