// DevOps
Netcat: чтение и запись по сети — диагностика, передача данных, туннели
Опубликовано 22.09.2026
Netcat (nc) читает и записывает данные по TCP и UDP-соединениям. Одной небольшой утилитой удобно проверить порт, снять баннер сервиса, передать файл между машинами или собрать временный туннель. Ниже — типовые задачи.
Реализаций Netcat несколько, и флаги у них различаются. По умолчанию установлены:
- OpenBSD netcat — в Debian и Ubuntu (пакет
netcat-openbsd), Fedora, Arch, Alpine. Примеры ниже рассчитаны на него; - traditional (GNU) netcat — старая реализация, в ней есть флаг
-eдля запуска программы на соединении, которого в OpenBSD-версии нет; - Ncat из пакета Nmap — отдельная реализация с TLS, прокси и обслуживанием нескольких клиентов.
Проверить свою версию: nc -h выводит список поддерживаемых флагов.
Проверка портов и сервисов
ping использует только ICMP и не говорит, открыт ли нужный порт. Netcat проверяет именно соединение:
nc -zv -w 3 example.ru 80 443 22-z— только проверить соединение, не передавать данные;-v— подробный вывод;-w 3— таймаут 3 секунды.
Снять баннер сервиса — отправить запрос и прочитать ответ:
printf 'HEAD / HTTP/1.0
' | nc -w 3 example.ru 80Передача файлов между машинами
Когда под рукой нет scp или rsync. На принимающей стороне:
nc -l -p 9899 > backup.isoНа отправляющей:
nc 192.0.2.10 9899 < backup.isoNetcat не шифрует данные и не проверяет их целостность, поэтому передавать так стоит только внутри доверенной сети. Для больших файлов данные сжимают на лету:
# приём
nc -l -p 9899 | gzip -dc > backup.iso
# отправка
gzip -c backup.iso | nc 192.0.2.10 9899После передачи сверьте контрольную сумму (sha256sum) на обеих сторонах.
Временный TCP-туннель
Пробросить локальный порт на внутренний сервис можно через именованный канал:
mkfifo /tmp/backpipe
nc -l 8080 < /tmp/backpipe | nc db.internal 5432 > /tmp/backpipeТеперь подключение к локальному порту 8080 уходит на внутренний PostgreSQL. Это разовое незашифрованное решение для отладки; для постоянного доступа используют SSH-туннель или VPN.
Когда Netcat не хватает
- Ncat (пакет
nmap) — TLS, прокси, несколько клиентов одновременно, флаг--exec; - socat — двунаправленная передача между почти любыми источниками (сокеты, файлы, устройства, TLS), синтаксис сложнее.
sudo apt install nmap socatКак защититься от netcat в чужих руках
Те же свойства делают netcat инструментом атакующего: получив доступ к серверу, злоумышленник открывает им обратное соединение наружу, чтобы обойти входящий межсетевой экран. Что снижает риск:
- Фильтруйте исходящий трафик. По умолчанию сервер выпускает наружу любые соединения. Разрешите только нужные направления, а остальное закройте — обратное соединение на произвольный порт не пройдёт:
# только DNS, HTTP и HTTPS наружу, остальное — запрет
ufw default deny outgoing
ufw allow out 53
ufw allow out 80
ufw allow out 443- Не держите netcat, компиляторы и лишние интерпретаторы на боевом сервере — их отсутствие усложняет закрепление.
- Следите за неожиданными процессами и соединениями. Исходящее соединение процесса
nc,bashилиshна внешний адрес — повод для тревоги:
ss -tnp | grep -E 'nc|bash|sh'- Настройте аудит. Правило auditd отмечает создание именованных каналов (
mkfifo,mknod) — типичный признак обратной оболочки без флага-e:
auditctl -a always,exit -F arch=b64 -S mknod -S mknodat -k reverse_shellПолноценно такие атаки ловят системы обнаружения на хосте (auditd с готовыми правилами, Falco, EDR) — они видят подозрительные связки «процесс оболочки + сетевое соединение». Межсетевой экран на исходящие и минимальный набор ПО на сервере закрывают самые простые сценарии.
Итог
Netcat перекладывает байты из stdin в сеть и обратно, поэтому сочетается с обычными командами оболочки — gzip, dd, каналами. Для проверки портов, разовой передачи файла и быстрого туннеля этого достаточно; для шифрования и постоянных сервисов берут Ncat, socat, SSH или VPN.
Первоисточники:
// Reviews
Отзывы по теме
Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает на результат клиента, а не на чек. Рекомендую!
Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает …
Настройка vps, настройка сервера
12.05.2026 · ★ 5/5
Отличная работа! Очень быстро настроил сервер, установил панель, прописал IP. Однозначно могу порекомендовать!
Отличная работа ! Очень быстро настроил сервер, установил панель прописал IP Однозначно могу по рекомендовать !
Всё отлично, помог оперативно и профессионально, спасибо, рекомендую сообществу
Всё отлично, помог оперативно и профессионально, спасибо, рекомендую сообществу
Настройка vps, настройка сервера
16.04.2026 · ★ 5/5
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. Результатом доволен.
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. …
Настройка vps, настройка сервера
18.02.2026 · ★ 5/5
Все было сделано быстро и четко. Рекомендую
Все было сделано быстро и четко. Рекомендую
Настройка vps, настройка сервера
17.01.2026 · ★ 5/5
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Настройка vps, настройка сервера
16.12.2025 · ★ 5/5
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related