Ir para o conteúdo
HexaTransfer
Voltar ao blog
Transferencia de arquivos

Ferramentas de transferência de ficheiros Linux: CLI e web

Explore as melhores ferramentas de transferência de ficheiros Linux. De utilitários CLI a serviços web para enviar ficheiros.

No Linux, a melhor ferramenta de transferência de ficheiros depende de saber se está a mover ficheiros entre as suas próprias máquinas (rsync, scp, sftp) ou a enviar para alguém fora do seu controlo (serviços via browser como o HexaTransfer). Para cópias em massa servidor-a-servidor, rsync -avP --partial é o pilar. Para entrega pontual a um destinatário não técnico, um URL de um serviço via browser supera pedir-lhe que instale um cliente SSH. Os ambientes de trabalho Linux (GNOME, KDE) também suportam navegação por SMB, WebDAV e SFTP nativamente através do gestor de ficheiros.

Os clássicos da linha de comando

scp — cópia segura via SSH. Simples e direto:

scp ficheiro_grande.tar.gz utilizador@servidor:/home/utilizador/
scp -r pasta/ utilizador@servidor:/caminho/

Sem retoma em caso de falha. Adequado para redes fiáveis, irritante em redes instáveis. O OpenSSH 9.0 (2022) alterou o protocolo predefinido de SCP-sobre-SSH para SFTP — o comportamento é semelhante, mas os casos extremos diferem.

rsync — sincronização incremental com retoma:

rsync -avP --partial origem/ utilizador@servidor:/dest/

Sinalizadores: -a modo arquivo (preserva permissões, tempos, symlinks), -v verbose, -P progresso + --partial (mantém o ficheiro parcial em caso de falha). --bwlimit=50000 limita a largura de banda a 50 MB/s se estiver numa ligação partilhada.

Para raízes de origem e destino idênticas, o rsync transfere apenas os bytes alterados em execuções subsequentes — enorme poupança de tempo em transferências repetidas.

sftp — transferência de ficheiros SSH interativa. Use como um cliente FTP antigo:

sftp utilizador@servidor
> put ficheiro_grande.tar.gz
> get algum_ficheiro.txt

rclone — como o rsync mas para fornecedores de nuvem. Suporta S3, Google Drive, Dropbox, OneDrive, Backblaze B2 e dezenas mais. Excelente para uploads automatizados para armazenamento de objetos:

rclone copy pasta/local remoto:bucket/caminho -P

Opções via browser para destinatários não técnicos

Nem todos os destinatários têm chaves SSH. Para enviar a jornalistas, clientes ou familiares, um URL de um serviço de transferência é o que funciona:

| Serviço | Máximo gratuito | Encriptação | Compatível com Linux | |---|---|---|---| | HexaTransfer | 10 GB | Ponta a ponta AES-256-GCM | Sim (qualquer browser) | | WeTransfer | 2 GB | TLS | Sim | | SwissTransfer | 50 GB | TLS | Sim | | Proton Drive Share | 1 GB | Ponta a ponta | Sim | | Tresorit Send | 5 GB | Ponta a ponta | Sim |

O Firefox e o Chromium no Linux gerem uploads grandes com competência. O desempenho do upload geralmente corresponde ao hardware e à ligação de saída, não ao browser.

Ferramentas para a mesma rede a partir do ambiente de trabalho

GNOME Files (Nautilus): Ligar ao Servidor > smb://, sftp://, ftp://, dav://. Monta o remoto como se fosse local. Bom para navegação ocasional.

KDE Dolphin: a mesma capacidade, com UX ligeiramente diferente. Suporta os mesmos protocolos.

smbclient — SMB de linha de comando para scripts:

smbclient //servidor/partilha -U utilizador

sshfs — montar um sistema de ficheiros remoto via SSH:

sshfs utilizador@servidor:/caminho/remoto ~/mnt/remoto

Útil quando uma aplicação espera um caminho local.

Afinação da velocidade de transferência no Linux

O escalonamento de janela TCP predefinido do Linux gere bem as transferências de alta largura de banda, mas algumas distribuições têm definições conservadoras. Para transferências em ligações de longa distância (alta latência, alta largura de banda):

sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

Ative o controlo de congestionamento BBR para melhor débito em ligações com perdas:

sysctl -w net.ipv4.tcp_congestion_control=bbr

Estas definições não são necessárias em redes domésticas comuns — mas se estiver a mover dados entre datacentros ou entre continentes, a diferença entre o CUBIC predefinido e o BBR pode ser 2–3×.

Arquivamento: variantes do tar

tar -czf arquivo.tar.gz pasta/          # gzip, rápido, compressão moderada
tar -cjf arquivo.tar.bz2 pasta/         # bzip2, mais lento, melhor compressão
tar -cJf arquivo.tar.xz pasta/          # xz, mais lento, melhor compressão
tar --use-compress-program=zstd -cf arquivo.tar.zst pasta/   # zstd, rápido e boa taxa

No Linux moderno, o zstd supera o gzip em velocidade e taxa de compressão. Para distribuição a destinatários não-Linux, fique com .zip — use zip -r arquivo.zip pasta/.

Para dividir um arquivo enorme em partes:

tar -czf - pasta/ | split -b 2G - arquivo.tar.gz.parte_

Reconstitua com cat arquivo.tar.gz.parte_* | tar -xzf -.

Armazenamento de objetos como meio de transferência

Para cargas de trabalho que geram muitos ficheiros ou ficheiros enormes, usar um bucket na nuvem como camada de transferência é mais limpo do que um serviço pontual:

AWS S3: aws s3 cp ficheiro s3://bucket/caminho e depois gere um URL pré-assinado com aws s3 presign s3://bucket/caminho --expires-in 3600. O destinatário recebe uma transferência direta com limite de tempo.

Cloudflare R2: API compatível com S3, sem taxas de saída. Use o mesmo CLI aws com um endpoint personalizado.

Backblaze B2: b2 upload-file bucket ficheiro chave e depois b2 get-download-url-with-auth bucket chave 3600.

MinIO: aloje um servidor compatível com S3, emita URLs pré-assinados do seu próprio domínio.

Para programadores que enviam artefactos de build, logs ou dumps, estas são melhores do que um serviço de transferência de uso geral.

Servidores HTTP ad-hoc

Para transferências rápidas na mesma LAN:

python3 -m http.server 8000

Serve o diretório atual em http://o-seu-ip:8000/. O destinatário acede ao URL e faz a transferência. Útil entre o portátil e uma VM ou telemóvel no mesmo Wi-Fi. Não é encriptado — adequado para uso interno, não externo.

Para HTTPS com certificado autoassinado:

python3 -c "import http.server, ssl; httpd = http.server.HTTPServer(('0.0.0.0', 8443), http.server.SimpleHTTPRequestHandler); httpd.socket = ssl.wrap_socket(httpd.socket, certfile='cert.pem', server_side=True); httpd.serve_forever()"

O caddy file-server faz isto de forma limpa com HTTPS automático se tiver um domínio real.

Ferramentas P2P

Magic Wormhole (wormhole):

wormhole send ficheiro_grande.tar.gz
# imprime um código como 7-crossover-clockwork
# o destinatário executa: wormhole receive 7-crossover-clockwork

Encriptação ponta a ponta, funciona através de NAT via servidor de encontro. Excelente para transferências diretas pontuais.

croc (de schollz): semelhante ao wormhole, binário único, multiplataforma. Popular na comunidade homelab.

Estas ferramentas são peer-to-peer mas ainda encaminham através de servidores de encontro para travessia de NAT — a encriptação é ponta a ponta, o caminho não é direto.

Encriptação em repouso antes do upload

Para fluxos de trabalho extra cautelosos, encripte o arquivo antes de enviá-lo por qualquer serviço:

gpg --symmetric --cipher-algo AES256 ficheiro_grande.tar.gz

Produz ficheiro_grande.tar.gz.gpg. O destinatário desencripta com gpg --decrypt. Partilhe a frase-passe por um canal diferente.

Ou use o age, uma alternativa moderna:

age -p -o encriptado.age ficheiro_original.tar.gz

Com serviços de transferência com encriptação ponta a ponta como o HexaTransfer, esta dupla camada é geralmente desnecessária — mas para modelos de ameaça de nível estatal, dupla segurança faz sentido.

Experimente em hexatransfer.com — gratuito, sem conta, até 10 GB.

Envie arquivos grandes com segurança e criptografia de ponta a ponta

Transfira arquivos de até 10 GB gratuitamente com criptografia de ponta a ponta. Sem necessidade de conta. Seus arquivos são criptografados no navegador antes do envio — ninguém mais pode lê-los.

Enviar um arquivo