Как установить и использовать команду netcat в Linux |

Как установить и использовать команду netcat в Linux

Мануал

В этой статье мы расскажем, как установить инструмент netcat на linux и использовать его для сетей TCP / IP.

Netcat – очень полезная утилита, когда речь заходит о сокетах TCP / UDP.

Эта статья будет охватывать только очень небольшое количество команд netcat, поэтому, если у вас есть интересные вещи, касающиеся использования netcat, не стесняйтесь делиться ими в комментариях.

Как установить netcat

Мы собираемся установить netcat на Ubuntu 18.04, используя apt install или компилируя его из исходного кода.

Установка с использованием apt довольно проста, вам просто нужно ввести следующую команду в терминал:

sudo apt install netcat 

Как установить netcat из исходного кода

Компиляция netcat из исходного кода не так проста, как установка через apt install, но если вы выполните следующие шаги, вы можете легко установить ее.

Загрузите исходный код с сайта netcat с помощью следующей команды:

wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz

Извлеките недавно загруженный архив.

Для этого вы можете запустить:

tar -xzvf netcat-0.7.1.tar.gz

перейдите в каталог, содержащий исходный код пакета, и введите ./configure, чтобы настроить пакет для вашей системы.

cd netcat-0.7.1
./configure

Если вы получаете сообщение об ошибке, подобное этому, – «no acceptable C compiler found in $PATH”» при запуске ./configure, убедитесь, что вы установили gcc-компилятор.

Чтобы установить его, введите следующую команду:

apt-get install build-essential

Запуск configure занимает некоторое время.

После успешного завершения настройки выполните:

sudo make
sudo make install

Вы можете удалить двоичные файлы программы и объектные файлы из каталога исходного кода, набрав make clean.

Чтобы удалить файлы, которые были созданы, выполните команду make distclean.

Как использовать netcat

Прежде чем приступать к изучению некоторых команд netcat, важно знать, что если вы привязываетесь к известным портам (0-1023) с nc, вам нужна привилегия root.

В противном случае вы можете запустить nc как обычный пользователь.

1. Проверьте, открыт ли конкретный порт TCP удаленного хоста

nc -vn 192.168.40.146 2424

Вывод, если порт 2424 на удаленном сервере закрыт

nc: connect to 192.168.40.146 port 2424 (tcp) failed: Connection refused

Вывод, если порт на удаленном сервере открыт (например, 22 порт)

Connection to 192.168.40.146 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4

2. Выполните проверку TCP-порта на удаленном хосте

Приведенная ниже команда проверяет порты от 20 до 25 на удаленном хосте и выводит результат.

nc -vnz -w 1 192.168.40.146 20-25

Результат будет выглядеть следующим образом:

nc: connect to 192.168.40.146 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 21 (tcp) failed: Connection refused
Connection to 192.168.40.146 22 port [tcp/*] succeeded!
nc: connect to 192.168.40.146 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 25 (tcp) failed: Connection refused

3. Выполните проверку порта UDP на удаленном хосте

 nc -vnzu 192.168.40.146 1-65535

На выводе будут отображаться только порты, которые разрешают соединения udp.

Connection to 192.168.40.146 2424 port [udp/*] succeeded!
Connection to 192.168.40.146 12354 port [udp/*] succeeded!

4. Отправьте тестовый пакет UDP на удаленный хост

echo -n "udp test" | nc -u -w1 192.168.40.146 2424

Приведенная выше команда отправит тестовый пакет UDP с 1 секундой таймаута на удаленный хост на порту 2424

5. Скопируйте файл (например, test.txt) с одного хоста на другой

На принимающем хосте (192.168.40.146 в моем случае) выполните:

 nc -lp 2424> test.txt

На хосте отправителя (192.168.40.144) выполните следующую команду:

 nc 192.168.40.146 2424 <test.txt 

Это скопирует файл test.txt с хоста отправителя на хост-получатель через порт 2424. убедитесь, что входящие соединения подключены к порту 2424 на хост-ресивере.

На хосте:

nc -l 2424 | tar xvf -

На хосте отправителя выполните следующую команду:

tar cvf - /path/to/dir | nc 192.168.40.146 2424

7. Создайте сжатую резервную копию жесткого диска (например, / dev / sdc) на удаленном хосте

При запуске удаленного хоста:

 nc -lp 2424 | sudo dd of=/path/to/image.img.gz

На локальном хосте выполните следующую команду:

dd if=/dev/sdc | gzip -c | nc 192.168.40.146 2424

8. Восстановите жесткий диск (например, / dev / sdc) из образа сжатого диска, сохраненного на удаленном хосте

На локальном хосте:

 nc -lp 2424 | gunzip -c | sudo dd of=/dev/sdc

На удаленном хосте выполните следующую команду:

 cat /path/to/image.img.gz | nc 192.168.40.144 2424

9. Запустите незащищенный онлайн-чат между двумя хостами

На одном хосте (например, 192.168.40.144) выполните следующую команду:

 nc -lp 2424

На другом хосте (например, 192.168.40.146) выполните следующую команду:

nc 192.168.40.144 2424

После запуска этих команд на обеих машинах будут отображаться все, что набирается на обоих терминалах.

10. Запустите веб-сервер со статической веб-страницей.

Выполните команду ниже на локальном хосте (например, 192.168.40.144), чтобы запустить веб-сервер, обслуживающий test.html на порту 80.

Обратите внимание, что вы должны запускать с правами sudo, поскольку 80 находится в диапазоне известных портов (1-1023)

while true; do sudo nc -lp 80 < test.html; done

Теперь откройте http://192.168.40.144/test.html с другого хоста, чтобы получить доступ к нему.

11. Прослушивание TCP-порта с использованием адреса IPv6

Вы можете использовать следующую команду, чтобы разрешить nc использовать адрес IPv6 при прослушивании на TCP-порту.

 nc -6 -l 2424

Проверьте, работает ли она с приведенной ниже командой

 sudo netstat -nap | grep 2424

Результат будет выглядеть следующим образом:

tcp6 0 0 :::2424 :::* LISTEN 15665/nc

12. Поток видеофайла с сервера для клиента для просмотра потокового видео с помощью видеоплеера (например, mplayer)

На видеосервере (192.168.40.144):

cat sample_video.avi | nc -l 2424

На клиентском хосте (192.168.40.146):

 nc 192.168.40.144 2424 | mplayer -vo x11 -cache 3000 -

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий