Envie dados entre computadores em rede com Netcat usando a linha de comando

Anonim

Netcat é uma poderosa ferramenta de linha de comando que pode ler e gravar dados em uma conexão de rede usando TCP/IP, é comumente usado para retransmissões, transferência de arquivos, verificação de portas, entre outras coisas. Embora as origens do netcat sejam dos mundos unix e linux, o netcat também está embutido no Mac OS X, e vamos usar o utilitário nc como uma maneira fácil de enviar dados e outros textos através de dois computadores em rede.Ao usar o netcat para enviar dados com um relacionamento bastante simples entre cliente e servidor, ele oferece uma alternativa potencialmente mais rápida ao compartilhamento tradicional de arquivos quando os usuários preferem permanecer na linha de comando ao enviar e receber dados e onde a conexão por SSH ou SFTP não é possível. t prático.

Observe que o netcat não requer logins ou autenticação, o único requisito é que o cliente esteja ciente do endereço IP do servidor e do número da porta de escuta. Isso obviamente aumenta o potencial de uso indevido de segurança, portanto, usar o netcat para enviar dados e texto geralmente é melhor reservado para usuários avançados ou para uso exclusivo atrás de uma rede local protegida onde há pouco risco. Situações em que a segurança é importante enfatizar seria melhor usar SSH.

Para facilitar, vamos nos referir ao computador 1 que está ouvindo com netcat como “Servidor” e vamos nos referir ao computador 2 enviando os dados para o computador 1 como “cliente”.

Definir o Netcat para ouvir no servidor (computador 1) e na porta

Vamos iniciar o netcat e fazer com que ele escute na porta 2999 e, em seguida, redirecionar qualquer um dos dados recebidos para um arquivo chamado “received.txt” com a seguinte string de comando:

nc -l 2999 > recebido.txt

Antes de chamá-lo e passar para o cliente, você deseja ter o endereço IP do Mac na rede local. Você pode obtê-lo no painel de controle da Rede ou, como já está no Terminal, por meio da linha de comando com a seguinte sintaxe:

ipconfig getifaddr en0

Macs modernos com Wi-Fi usarão apenas en0, Macs com ethernet e wi-fi podem usar en1. Se não aparecer nada, tente a outra interface para obter o IP da LAN. Vamos supor que este IP do Mac seja relatado como “192.168.1.101”, é claro que o seu provavelmente varia. Você precisará disso no computador cliente para enviar dados, que abordaremos a seguir.

Transmitir dados do cliente (computador 2) para o servidor de escuta

Agora no cliente de onde você deseja enviar dados, você pode usar um comando como o seguinte. Usaremos cat para despejar um arquivo de texto pela rede para o servidor netcat de escuta, mas você pode canalizar praticamente qualquer coisa que desejar:

cat sendthisdataover.txt | nc 192.168.1.101 2999

Para que isso funcione corretamente, certifique-se de preencher seu próprio endereço IP do servidor e obter o arquivo ou texto apropriado que deseja enviar.

Supondo que a rede local seja minimamente rápida, os dados devem chegar bem rápido, se não instantaneamente. Assim que a transferência de dados for concluída, ambos os lados da conexão serão interrompidos e o servidor parará de escutar, então feche a porta. Isso o torna eficaz para o envio único de dados, como arquivos de log ou um grande documento de texto, mas não é necessariamente prático para mover muitos arquivos.

Como já mencionado, você pode canalizar praticamente qualquer dado, portanto, seja a saída de outro aplicativo, cauda, ​​gato ou até mesmo despejado diretamente da área de transferência com pbcopy e pbpaste, ele será transferido por netcat.

Deve-se observar que existem maneiras mais convenientes de compartilhar uma área de transferência entre Macs ou entre um Mac e máquinas Linux ou Windows e, nessas situações, é melhor usar ferramentas gratuitas como o Teleport for Mac- compartilhamento de entrada para Mac, ou o utilitário Synergy gratuito se você estiver indo para plataforma cruzada entre Macs e PCs. Ambos permitem que um usuário compartilhe dados da área de transferência, bem como dispositivos de entrada como mouse e teclado.

Para registro, enquanto esta demonstração é mostrada em dois Macs com OS X, não há razão para você não poder usar o netcat para enviar dados entre uma máquina Mac e Linux, ou vice-versa.

Existem vários outros ótimos usos para o netcat por aí, se você tiver algum favorito, deixe-nos saber nos comentários!

Envie dados entre computadores em rede com Netcat usando a linha de comando