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:
- Запустите захват на компьютере-клиенте.
- Попытайтесь подключиться к сервису (диагностика VPN‚ почтовый клиент).
- Посмотрите‚ на какой порт идёт 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 Почтовый клиент не отправляет письма
- Узнаём MX-запись домена: dig +short example.com mx.
- Проверяем доступность портов 25‚ 465‚ 587 на MX-сервере.
- Если 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
Если вы регулярно сталкиваетесь с такими задачами‚ создайте корпоративный «порт-бук»:
- Документируйте все внутренние службы и их порты.
- Делайте SVN/Git-репозиторий с Ansible-правилами firewall.
- Внедрите мониторинг (Prometheus + Grafana) для отслеживания открытых портов.
Тогда вместо «гадания» у вас будет точное знание: какой порт за что отвечает‚ кто его открыл и для какой цели.