Verwendung von Netcat zum schnellen Übertragen von Dateien zwischen Linux-Computern

Como usar o Netcat para transferir arquivos rapidamente entre computadores Linux

Não faltam soluções de software que podem ajudá-lo a transferir arquivos entre computadores. No entanto, se você fizer isso muito raramente, as soluções típicas como NFS e SFTP (por meio de OpenSSH) podem ser exageradas. Além disso, esses serviços estão permanentemente abertos para receber e gerenciar conexões de entrada. Configurado incorretamente, isso pode tornar seu dispositivo vulnerável a certos ataques.

netcat, o chamado “canivete suíço TCP / IP”, pode ser usado como uma solução ad-hoc para transferir arquivos por meio de redes locais ou da Internet. Também é útil para transferir dados de / para suas máquinas virtuais ou contêineres quando eles não incluem o recurso pronto para uso. Você pode até mesmo usá-lo como um mecanismo de copiar e colar entre dois dispositivos.

Como instalar o netcat em várias distribuições Linux

A maioria dos sistemas operacionais baseados em Linux vem com isso pré-instalado. Abra um terminal e digite:

Se o comando não for encontrado, instale o pacote que contém o netcat, uma variante do BSD. Existe também a versão GNU do netcat que contém menos recursos. Você precisa do netcat no computador que recebe o arquivo e no que o envia.

Em distribuições baseadas em Debian, como Ubuntu ou Linux Mint, instale o utilitário com:

Com o openSUSE, siga as instruções nesta página, específico para sua distribuição exata.

No Arch Linux, digite o seguinte comando:

Infelizmente, a família RedHat não inclui as variantes BSD ou GNU do netcat. Por alguma razão estranha, eles decidiram usar o nmap-ncat. Embora semelhantes, algumas opções de linha de comando não estão disponíveis, por exemplo -N. Isso significa que você terá que substituir uma linha como nc -vlN 1234 > nc com nc -vl 1234 > nc para que funcione no RedHat / Fedora.

Para instalar o ncat no RedHat:

E no Fedora:

Como usar o netcat para transferir arquivos entre computadores Linux

No computador que receberá o arquivo, encontre o endereço IP usado em sua rede interna.

Depois de “src”, você verá o endereço IP da rede interna do dispositivo. Se, por algum motivo, os resultados forem irrelevantes, você também pode tentar:

netcat-find-ip-address

Na captura de tela oferecida como exemplo, o IP é 10.11.12.10.

No mesmo computador, que vai receber o arquivo, digite este comando:

netcat-receive-file

E no computador que irá enviar o arquivo digite o seguinte, substituindo 10.11.12.10 pelo IP que você descobriu anteriormente:

netcat-send-file

Os caminhos de diretório e arquivo podem ser absolutos ou relativos. Um caminho absoluto é “/home/user/Pictures/file.png.” Mas se você já está em “/ home / user,” você pode usar o caminho relativo, “Pictures / file.png,” como visto na imagem acima.

No primeiro comando foram usados ​​dois parâmetros: -v e -l. -v torna a saída detalhada, imprimindo mais detalhes, para que você possa ver o que está acontecendo. -l faz o utilitário “escutar” na porta 44444, essencialmente abrindo um canal de comunicação no dispositivo receptor. Se você tiver regras de firewall ativas, certifique-se de que não estejam bloqueando a conexão.

No segundo comando, -N faz o netcat fechar quando a transferência é concluída.

Normalmente, o netcat produziria no terminal tudo o que recebe. > cria um redirecionamento para esta saída. Em vez de imprimi-lo na tela, ele envia toda a saída para o arquivo especificado após >. < funciona ao contrário, obtendo entrada do arquivo especificado em vez de esperar pela entrada do teclado.

Se você usar os comandos acima sem redirecionamentos, por exemplo, nc -vl 44444 e nc -N 10.11.12.10 44444, você cria um “bate-papo” rudimentar entre os dois dispositivos. Se você escrever algo em um terminal e pressionar Enter, ele aparecerá no outro computador. É assim que você pode copiar e colar texto de um dispositivo para outro. pressione Ctrl + D (no remetente) ou Ctrl + C (em qualquer lugar) para fechar a conexão.

Otimize as transferências de arquivos

Ao enviar arquivos grandes, você pode compactá-los imediatamente para acelerar a transferência.

Na extremidade de recebimento, digite:

E no remetente, digite o seguinte, substituindo 10.11.12.10 pelo endereço IP do seu dispositivo receptor:

Enviar e receber diretórios

Obviamente, às vezes você pode querer enviar vários arquivos de uma vez, por exemplo, um diretório inteiro. O seguinte também irá compactá-los antes de enviar pela rede.

Na extremidade receptora, use este comando:

netcat-receive-tar-gzipped-directory

No dispositivo de envio, use:

netcat-send-tar-gzipped-directory

Conclusão

De preferência, você só usaria isso em sua rede local. O principal motivo é que o tráfego da rede não está criptografado. Se você enviasse isso para um servidor, através da Internet, seus pacotes de dados poderiam ser interceptados ao longo do caminho da rede. Mas se os arquivos transferidos não contiverem dados confidenciais, isso não é um problema real. No entanto, os servidores geralmente têm SSH pré-configurado para aceitar conexões FTP seguras e você pode usar SFTP para transferências de arquivos.

Rolar para cima