Проверка портов
Различай ответы: succeeded/open — порт слушает; Connection refused — дошли, но никто не слушает; timed out — не дошли (файрвол/маршрут).
nc (netcat) проверяет доступность портов и передаёт данные по TCP и UDP без лишних программ.
nc -zvw3 host 22
порт открыт? (refused vs timed out)
nc -zvu host 53
UDP
nc -zv host 20-25
диапазон
nc -l 9000
слушать (тест-сервер)
echo data | nc host 9000
отправить
nc -l 9000 > out.bin
принять файл (на другой стороне — nc host 9000 < file.bin)
nc (netcat) — «швейцарский нож» TCP/UDP: проверить, открыт ли порт, отправить
сырые данные, поднять временный слушатель, перекинуть файл между машинами.
В Ubuntu обычно
netcat-openbsd(ключи как ниже). Бывает вариантncat(из nmap) с похожим синтаксисом.
| Ключ | Значение |
|---|---|
-z |
scan-режим: только проверить, не слать данные |
-v |
подробный вывод (refused / open / timed out) |
-u |
UDP вместо TCP |
-l |
слушать (режим сервера) |
-p N |
локальный порт |
-w N |
таймаут соединения, секунд |
-n |
без DNS-резолва (быстрее) |
-k |
(с -l) не закрываться после клиента |
| Ключ | Что делает | Пример |
|---|---|---|
-z |
Режим сканирования — только проверить доступность, не слать данные. | nc -zv host 22 |
-v |
Подробный вывод — refused, open, timed out. | nc -zv host 80 |
-l |
Слушать входящее соединение (режим сервера). | nc -l 9000 |
-w N |
Таймаут соединения в секундах — не даёт команде висеть бесконечно. | nc -zvw3 host 22 |
-u |
Использовать UDP вместо TCP. | nc -zvu host 53 |
-n |
Не резолвить DNS-имена — быстрее и надёжнее для проверок. | nc -zvn 10.0.0.5 22 |
-p N |
Использовать конкретный локальный порт. | nc -p 5000 host 9000 |
-k |
С -l — не закрываться после отключения одного клиента. | nc -lk 9000 |
Ничего не найдено. Попробуй запрос короче.
Различай ответы: succeeded/open — порт слушает; Connection refused — дошли, но никто не слушает; timed out — не дошли (файрвол/маршрут).
nc -zvw3 host port. refused ≠ timed out: первое — служба не запущена/не
тот порт (сеть в порядке), второе — файрвол/маршрут. Это ключевое различие.
nc -l 8080 на одной стороне, nc -zv host 8080 с другой — проходит ли TCP/UDP
именно по этому порту (полезно при отладке файрвола).
Без -w соединение может ждать вечно. Добавляй таймаут -w3 (и -z для чистой
проверки без обмена данными).
Есть неточность? Сообщить об ошибке в статье