netcat (nc) - это консольная утилита для работы с TCP и UDP. Через нее можно открыть соединение, поднять простой listener, проверить порт, отправить данные в сокет или быстро посмотреть, отвечает ли сервис. Во многих Linux-системах это одна из самых базовых сетевых утилит.
Базовые примеры
Проверить, открыт ли TCP-порт:
nc -zv 127.0.0.1 80
Проверить сразу несколько портов:
nc -zv 127.0.0.1 22 80 443
Проверить UDP-порт:
nc -zvu 127.0.0.1 53
Поднять listener на порту:
nc -lv 9000
Подключиться к нему с другой стороны:
nc 127.0.0.1 9000
Где полезен
nc удобен для быстрой сетевой диагностики. Проверить доступность сервиса, убедиться что порт слушает, вручную отправить запрос в TCP-соединение, посмотреть сырой ответ, протестировать локальный listener без лишних инструментов.
Например, можно руками отправить HTTP-запрос:
printf "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n" | nc example.com 80
Или быстро проверить, слушает ли порт внутри сервера:
nc -zv localhost 5432
Даже можно отправить файл не используя ssh, rsync или scp:
На принимающей стороне:
nc -l 9000 > output.bin
На отправляющей стороне:
nc -N <хост получателя> 9000 < input.bin
Это просто сырая передача байтов через TCP-соединение.
Что важно
У netcat есть разные реализации: openbsd-netcat, gnu netcat, ncat. Из-за этого некоторые флаги могут немного отличаться. Но базовые сценарии обычно одинаковые: connect, listen, scan, send data.
Вывод
nc - это простой и полезный инструмент для TCP/UDP-проверок. Когда нужно быстро понять, жив ли порт и что реально отвечает по сокету, netcat обычно оказывается самым коротким путем.
LinuxCamp | #utils
