Перейти к основному содержанию

Linux — nc вместо telnet

Linux 2

Может так случиться, что на сервере Linux может не оказаться нашей любимой команды telnet. Как тогда проверить доступность порта на удалённой машине? На помощь приходит команда nc.

Команда nc (netcat) служит для передачи и получения данных посредством протоколов TCP и UDP. Богатым функционалом она не отличается, но основные необходимые операции выполнить можно.

Проверка доступности TCP порта:

nc -vz 10.10.12.13 8080

nc

Список параметров, в зависимости от версии netcat, может отличаться:

nc --help

nc

nc

Некоторые параметры:

  • -6 – использовать протокол IPv6. По умолчанию используется параметр -4 и IPv4 соответственно
  • -h – справка
  • -i задержка в секундах
  • -l – режим прослушивания
  • -N – закрыть соединение при достижении конца файла при его отправке
  • -n – Работать с IP-адресами напрямую, не используя DNS, отключить поиск портов
  • -P имя_пользователя – указать имя пользователя для подключения к прокси
  • -x адрес:порт – указать адрес и порт для подключения к прокси
  • -p порт – номер порта
  • -U – использовать сокет домена UNIX (для межпроцессного взаимодействия)
  • -u – использовать протокол UDP, по умолчанию используется TСP
  • -v – подробный режим
  • -W количество_пакетов – закрыть соединение после получения определённого количества пакетов
  • -w таймер – таймер в секундах
  • -z – отключить отправку данных

Ещё примеры (трюки nc)

Проверка доступности TCP порта:

nc -vz 10.10.12.13 8080

Проверка доступности диапазона TCP портов:

nc -vz 10.10.12.13 1-1000 2>&1 | grep succeeded

Сканирование UDP портов:

nc -vzu 10.10.12.13 1-1000

Прослушать UDP порт на получателе:

nc -nlv 8080

Использование nc в качестве чата на открытом порту:

# на компьютере 1
nc -lp 8080

# на компьютере 2
nc 0.0.0.0 8080

Обмен файлами:

# на компьютере 1
nc -l 8080 > paste.txt

# на компьютере 2
nc -N 0.0.0.0 8080 < copy.txt

Страница веб-сервера, можно использовать в качестве заглушки:

while true; do echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l -w 1 -p 80; done

Использование nc в качестве терминала:

# на компьютере 1
nc -lvnp 8080

# на компьютере 2
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 0.0.0.0 8080 >/tmp/f

Теги

 

Похожие материалы

Резервное копирование Atlassian JIRA через GUI

Резервную копию Atlassian JIRA можно сделать в Администрирование > Система > Импорт и Экспорт > Резервное копирование. Здесь вы сможете сделать резервное копирование содержимого базы данных в доступном формате XML.

Теги

Bitvise SSH Server для Windows

Bitvise SSH Server (WinSSHD) — SSH-сервер, разработанный специально для Windows. Позволяет на Windows машине организовать сервер Secure Shell Handling 2 (SSH2) и Secure FTP (SFTP). Отличается большим количеством настроек. Бесплатно для частного использования при выборе версии Personal Edition, но с ограничениями.

Haproxy на Ubuntu 20.04 LTS

Установим и настроим балансировщик haproxy на Ubuntu 20.04 LTS. Балансировать будем в режиме roundrobin порт TCP 25 на порты localhost TCP 26, 27, 28, 29, 30. На этих портах работает postfix в режиме multi-instance, сделаем единый 25 порт, который будет балансировать нагрузку между экземплярами почтового сервера.

Теги