Não faltam soluções de software que podem ajudá-lo a transferir arquivos entre computadores. No entanto, se você fizer isso muito raramente, soluções típicas como NFS e SFTP (via OpenSSH) podem ser exageradas. Além disso, esses serviços estão permanentemente abertos para receber e processar as comunicações recebidas. 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 dedicada para a transferência de arquivos através de redes locais ou da Internet. Também é útil transferir dados de / para máquinas virtuais ou contêineres quando não incluídos no recurso. 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 Linux vem pré-instalado com o netcat. Abra um terminal e digite:
netcat
Se o comando não for encontrado, instale o pacote que contém o netcat, que é uma variante do BSD. Também existe uma versão GNU do netcat que possui menos recursos. Você precisa do netcat no computador que recebe o arquivo e no computador de onde o envia.
Em distribuições baseadas em Debian, como Ubuntu ou Linux Mint, instale o utilitário com:
sudo apt install netcat-openbsd
Usando o openSUSE, siga as instruções em Esta página , Para sua distribuição exata.
No Arch Linux, digite o seguinte comando:
sudo pacman -S openbsd-netcat
Infelizmente, a família RedHat não inclui as variantes BSD ou GNU do netcat. Por alguma razão estranha, eles decidiram ir com o nmap-ncat. Embora algumas opções de linha de comando sejam semelhantes, elas não estão disponíveis, por exemplo -N. Isso significa que você terá que substituir uma fonte como nc -vlN 1234> nc por nc -vl 1234> nc para que funcione no RedHat / Fedora.
Para instalar ncat No RedHat:
sudo yum install nmap-ncat
E no Fedora:
sudo dnf install nmap-ncat
Como usar o netcat para transferir arquivos entre computadores Linux
No computador que receberá o arquivo, localize o endereço IP em uso na sua rede interna.
ip route get 8.8.8.8
distância "srcVocê verá o endereço IP da rede interna do dispositivo. Se os resultados forem, por algum motivo, irrelevantes, você também pode tentar:
ip address
Na captura de tela do exemplo mostrado, o endereço IP é 10.11.12.10.
No mesmo computador que receberá o arquivo, digite este comando:
nc -vl 44444 > pick_desired_name_for_received_file
E no computador que vai enviar o arquivo, escreva e substitua o número 10.11.12.10 Com o IP que você descobriu antes:
nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
Os caminhos de diretório e arquivo podem ser absolutos ou relativos. O caminho absoluto é “/home/user/Imagens/arquivo.png“. Mas se você já está em casa / usuárioVocê pode usar o caminho relativo.Imagens / arquivo.pngConforme mostrado na imagem acima.
No primeiro comando foram usados dois parâmetros: -v و - l، -v A saída detalhada é impressa para obter mais detalhes, para que você possa ver o que está acontecendo. -l Isso faz com que a ferramenta "escute" na porta 44444, essencialmente abrindo um canal de comunicação no receptor. Se as regras de firewall estiverem ativas, certifique-se de que não estejam bloqueando a conexão.
Na segunda questão, -N Faz netcat Ele fecha quando a transferência é concluída.
Normalmente, isso resultará netcat No Terminal tudo foi recebido. > Cria um redirecionamento para esta saída. Em vez de imprimi-lo na tela, ele envia toda a saída para o arquivo especificado ainda>. <Ele funciona ao contrário, recebendo a entrada do arquivo selecionado em vez de esperar pela entrada do teclado.
Se você usar os comandos acima sem redirecionamentos, por exemplo, nc-vl 44444, nc -N 10.11.12.10 44444 , Você pode criar um “bate-papo” rudimentar entre os dois dispositivos. Se você digitar 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. Clique em Ctrl + D (No remetente) ou Ctrl + C (Em qualquer lugar) para fechar a conexão.
Transferência de arquivo aprimorada
Ao enviar arquivos grandes, você pode compactá-los facilmente para aumentar a velocidade de transferência.
Na extremidade de recebimento, digite:
nc -vl 44444 | gunzip> pick_desired_name_for_file
E no dispositivo do remetente, digite o seguinte e substitua o número 10.11.12.10 Com o endereço IP do seu receptor:
gzip -c /path/to/file/you/want/to/send | nc -N 10.11.12.10 44444
Enviar e receber pastas
Obviamente, às vezes você pode querer enviar vários arquivos simultaneamente, por exemplo, uma pasta inteira. A próxima compactação também irá compactá-lo antes de enviar pela rede.
Na extremidade receptora, use este comando:
nc -vl 44444 | tar zxv
No transmissor, use:
tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
Conclusão
De preferência, você só usará isso em sua rede local. O principal motivo é que o tráfego da rede não é criptografado. Se você estiver enviando isso para um servidor, pela Internet, seus pacotes de dados podem ser interceptados ao longo de um caminho de rede. Mas se os arquivos que você está transferindo não contêm dados confidenciais, não é um problema real. No entanto, os servidores geralmente são pré-instalados com SSH para aceitar conexões FTP seguras e você pode usar SFTP para transferir arquivos.