😀 Netcat: универсальный инструмент для работы с сетьюNetcat (или просто nc) - старая, но невероятно полезная утилита командной строки в Linux. Это универсальный инструмент для работы с сетью, который позволяет устанавливать TCP-соединения, отправлять и принимать UDP-пакеты, сканировать порты, проверять настройки фаервола и даже передавать файлы. Сегодня расскажу про основные возможности
netcat
и примеры его использования.
1️⃣ Проверка доступности порта. Самый простой вариант использования nc - проверить, открыт ли порт на удалённом сервере:
nc -vz 10.10.10.10 139
Connection to 10.10.10.10 139 port [tcp/*] succeeded!
-v - выводит отладочную информацию
-z - активирует режим сканирования без установления соединения
2️⃣ Сканирование диапазона портов. Netcat можно использовать для быстрого сканирования портов, не прибегая к nmap:
nc -vz 10.10.10.10 1-1023 2>&1 | grep succeeded
Connection to 10.10.10.10 135 port [tcp/*] succeeded!
Connection to 10.10.10.10 139 port [tcp/*] succeeded!
Connection to 10.10.10.10 445 port [tcp/*] succeeded!
Этот способ удобен тем, что он работает без установки дополнительных инструментов, а вывод сразу фильтруется, оставляя только успешные соединения.
3️⃣ Отправка UDP-пакетов. Netcat также поддерживает работу с UDP. Чтобы отправить UDP-пакет на указанный порт, добавьте ключ -u:
nc -zvu 192.168.1.1 53
Connection to 192.168.1.1 53 port [udp/domain] succeeded!
Однако netcat не лучший инструмент для сканирования UDP-портов, так как статус может быть неточным. Для таких задач лучше использовать
nmap
,
zmap
или
masscan
.
4️⃣ Проверка фаервола. Netcat позволяет запустить простой сервер на нужном порту, чтобы проверить настройки фаервола:
nc -lvp 11222
Ncat: Listening on 0.0.0.0:11222
Теперь с другого сервера можно попробовать подключиться:
nc -v 10.10.10.20 11222
Connection to 10.10.10.20 11222 port [tcp/*] succeeded!
Если соединение установлено, значит, фаервол не блокирует этот порт. Это удобный способ диагностики при настройке сетевых правил.
5️⃣ Передача файлов через netcat. Netcat можно использовать для передачи файлов по сети.
На сервере (приём файла):
nc -lvp 11222 > received.txt
На клиенте (отправка файла):
nc -v 10.10.10.20 11222 < info.txt
Таким способом можно передавать любые файлы, не только текстовые.
6️⃣ Копирование диска по сети. С помощью nc можно передавать даже образы дисков:
Сервер (приём образа диска):
nc -lvp 11222 > /backup/sda.img.gz
Клиент (отправка образа):
dd if=/dev/sda | gzip -c | nc 10.10.10.20 11222
Однако удобнее использовать SSH:
dd if=/dev/sda | ssh [email protected] "dd of=/dev/sda"
7️⃣ Запуск простого веб-сервера. Netcat можно использовать в качестве мини-веб-сервера:
while true; do nc -lp 80 < /var/www/html/index.html; done
После этого по IP-адресу сервера будет открываться указанная HTML-страница.
#linux #utils
🧑💻 NetworkAdmin