Гадаю по портам

Гадаю по портам — магия IP-адресов раскроет тайны твоего девайса и будущего трафика

04 мая 2026 г. — Сегодня уже трудно представить себе администратора‚ который не сталкивался бы с необходимостью «угадать»‚ какой порт использует та или иная служба. Часто приходится гадать по портам‚ когда нужно:

  • открыть доступ к новому приложению в корпоративном файрволе;
  • выяснить‚ почему не работает VPN или почтовый клиент;
  • быстро определить‚ какую службу «заткнул» провайдер.

В этой статье мы собрали самые действенные методы «портовой гадалки» — от элементарных команд до современных скриптов‚ которые помогут без ошибок определить нужный порт за считанные минуты.

Почему «гадание» по портам, не магия‚ а наука

Сетевые порты, это логические номера от 0 до 65535‚ которые сопоставляются с конкретными процессами. Каждая служба регистрирует «знаменитые» порты в IANA. Однако на практике:

  • приложения могут использовать случайные порты свыше 1024;
  • разработчики закладывают «альтернативные» порты для обхода блокировок;
  • в корпоративных сетях всё настроено не по книжке.

Именно поэтому нередко приходится «гадать»: анализировать трафик‚ перебирать диапазоны и сопоставлять результаты с известными базами.

Быстрая диагностика: команды‚ которые надо держать «под рукой»

2.1 Windows

netstat -ano, выведет список активных соединений и PID процессов:

C:> netstat -ano | findstr ":443"
 TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 1234

Затем узнаем‚ какой процесс «сидит» на порту:

C:> tasklist /FI "PID eq 1234"

2.2 Linux/macOS

ss (современная замена netstat):

$ sudo ss -tulpn | grep :443
tcp LISTEN 0 128 0.0.0.0:443 0.0.0.0:* users:(("nginx"‚pid=1234‚fd=6))

«Гадание» по сигнатуре: перехват трафика

Если порт не определён‚ но известен IP-адрес назначения‚ используйте TCPDump или Wireshark:

  1. Запустите захват на компьютере-клиенте.
  2. Попытайтесь подключиться к сервису (диагностика VPN‚ почтовый клиент).
  3. Посмотрите‚ на какой порт идёт SYN-пакет.

Фильтр в Wireshark:

tcp.flags.syn == 1 and ip.dst == 198.51.100.5

Сервисы и базы: где заканчивается гадание и начинаеться точность

  • IANA Service Name and Transport Protocol Port Number Registry — официальный список портов.
  • Nmap — сканер‚ который «узнаёт» службу по сигнатуре:
$ nmap -sV -p 1-1000 192.0.2.10

Пример вывода:

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9
80/tcp open http nginx 1.24.0
443/tcp open https nginx 1.24.0

Сценарии «гадания» в популярных задачах

5.1 Почтовый клиент не отправляет письма

  1. Узнаём MX-запись домена: dig +short example.com mx.
  2. Проверяем доступность портов 25‚ 465‚ 587 на MX-сервере.
  3. Если 25 закрыт‚ пробуем 587 (Submission).

5.2 VPN не соединяется

  • OpenVPN: UDP 1194 или TCP 443.
  • WireGuard: UDP 51820.
  • L2TP/IPsec: UDP 500‚ 4500‚ 1701.

Используйте nping‚ чтобы проверить доступность:

$ nping --udp -p 1194 vpn.example.com

Автоматизация: микро-скрипт для быстрого «гадания»

Сохраните как guess_port.sh:

#!/usr/bin/env bash
HOST=$1
PORTS=$(seq 1 65535)
for p in $PORTS; do
 timeout 0.2 bash -c "echo >/dev/tcp/$HOST/$p" && echo "Port $p open"
done

Запуск:

$ chmod +x guess_port.sh
$ ./guess_port.sh 203.0.113.7

Если вы регулярно сталкиваетесь с такими задачами‚ создайте корпоративный «порт-бук»:

  1. Документируйте все внутренние службы и их порты.
  2. Делайте SVN/Git-репозиторий с Ansible-правилами firewall.
  3. Внедрите мониторинг (Prometheus + Grafana) для отслеживания открытых портов.

Тогда вместо «гадания» у вас будет точное знание: какой порт за что отвечает‚ кто его открыл и для какой цели.