Отправка данных между сетевыми компьютерами с помощью Netcat с помощью командной строки
Netcat — это мощный инструмент командной строки, который может считывать и записывать данные через сетевое соединение с использованием TCP/IP. Он обычно используется для ретрансляции, передачи файлов, сканирования портов и прочего. Хотя netcat происходит из мира unix и linux, netcat также встроен в Mac OS X, и мы собираемся использовать утилиту nc как простой способ отправки данных и другого текста между двумя сетевыми компьютерами.Используя netcat для отправки данных с довольно простой взаимосвязью между клиентом и сервером, он предлагает потенциально более быструю альтернативу традиционному обмену файлами, когда пользователи предпочитают оставаться в командной строке при отправке и получении данных, а подключение через SSH или SFTP невозможно. т практично.
Обратите внимание, что netcat не требует входа в систему или аутентификации, единственное требование состоит в том, чтобы клиент знал IP-адрес сервера и номер порта прослушивания. Это, очевидно, повышает вероятность неправомерного использования безопасности, поэтому использование netcat для отправки данных и текста, как правило, лучше всего использовать для опытных пользователей или для использования исключительно в защищенной локальной сети, где риск невелик. В ситуациях, когда важно подчеркнуть безопасность, лучше использовать SSH.
Для простоты мы будем называть компьютер 1, который прослушивает netcat, «сервером», а компьютер 2, отправляющий данные на компьютер 1, — «клиентом».
Установите Netcat для прослушивания на сервере (компьютер 1) и порте
Мы запустим netcat и заставим его прослушивать порт 2999, а затем перенаправим все полученные данные в файл с именем «received.txt» с помощью следующей командной строки:
nc -l 2999 > Received.txt
Перед тем, как перейти к клиенту, вам нужно иметь IP-адрес Mac в локальной сети. Вы можете получить это из панели управления сетью или, поскольку вы уже находитесь в терминале, через командную строку со следующим синтаксисом:
ipconfig getifaddr en0
Современные компьютеры Mac с Wi-Fi будут использовать только en0, компьютеры Mac с Ethernet и Wi-Fi могут использовать en1. Если ничего не получается, попробуйте другой интерфейс, чтобы получить IP-адрес локальной сети. Предположим, что этот IP-адрес Mac указан как «192.168.1.101», конечно, ваш IP-адрес может отличаться. Это понадобится на клиентском компьютере для отправки данных, о чем мы поговорим далее.
Передача данных от клиента (компьютер 2) к прослушивающему серверу
Теперь на клиенте, откуда вы хотите отправить данные, вы можете использовать следующую команду. Мы будем использовать cat для вывода текстового файла по сети на слушающий сервер netcat, но вы можете передавать практически все, что захотите:
cat sendthisdataover.txt | nc 192.168.1.101 2999
Чтобы это работало должным образом, убедитесь, что вы указали свой собственный IP-адрес с сервера и добавили соответствующий файл или текст, который хотите отправить.
Предполагая, что локальная сеть хоть немного быстра, данные должны поступать достаточно быстро, если не мгновенно. Как только передача данных будет завершена, обе стороны соединения разорвутся, и сервер прекратит прослушивание, а затем закроет порт. Это делает его эффективным для одноразовой отправки данных, таких как файлы журналов или большой текстовый документ, но не всегда практично для перемещения большого количества файлов.
Как уже упоминалось, вы можете передать практически любые данные, поэтому, будь то вывод другого приложения, tail, cat или даже выгруженный непосредственно из буфера обмена с помощью pbcopy и pbpaste, он будет передаваться через netcat.
Следует отметить, что существуют более удобные способы совместного использования буфера обмена между компьютерами Mac или между компьютерами Mac и Linux или Windows, и в таких ситуациях вам лучше использовать бесплатные инструменты, такие как Teleport для Mac- совместное использование ввода на Mac или бесплатную утилиту Synergy, если вы собираетесь использовать кроссплатформенные компьютеры Mac и ПК. Оба позволяют пользователю совместно использовать данные буфера обмена, а также устройства ввода, такие как мышь и клавиатура.
Для справки, хотя эта демонстрация показана на двух компьютерах Mac с OS X, нет никаких причин, по которым вы не можете использовать netcat для отправки данных между компьютерами Mac и Linux или наоборот.
Есть множество других замечательных способов использования netcat, если у вас есть какие-то любимые, сообщите нам об этом в комментариях!