Enviar um arquivo para alguém entre redes com a CLI do Relayium
Última atualização: 2026-08-07
Às vezes a outra máquina não é sua e você não consegue entrar por SSH: um arquivo para um colega em outro escritório, um build para um cliente, um arquivo compactado para um amigo do outro lado do país. relayium send e receive o movem entre as duas partes, entre redes, usando apenas um código de pareamento curto que a sua CLI gera na hora de enviar.
A sessão tem criptografia de ponta a ponta. Um breve encontro no servidor do Relayium apresenta as duas pontas; sempre que o servidor emite um retransmissor TURN para o código, os bytes do arquivo passam por ele como texto cifrado que ele não consegue ler e contam para a cota mensal de tráfego da conta que gerou o código.
Antes de começar
Tudo abaixo é a CLI do relayium, então instale-a primeiro se ainda não tiver. No macOS ou Linux, um comando coloca um binário pré-compilado no seu PATH:
curl -fsSL https://relayium.com/install.sh | sh
- Prefere escolher o arquivo você mesmo, ou está no Windows? Pegue um binário na página de releases — relayium.com/cli lista todas as opções de instalação (ou go build ./cmd/relayium se você tiver Go).
- relayium --version confirma que está instalada. Pule isso e os comandos abaixo só imprimirão “command not found”.
Envie e depois repasse o código que aparece
O que você precisa
- A CLI na máquina que envia. relayium version imprime uma versão; se o shell responder “command not found”, ela ainda não está instalada. A outra ponta também pode usar a CLI, ou digitar o código em um app do Relayium ou na página web.
- Quem envia com login feito. relayium whoami imprime o e-mail da conta, e gerar um código de emparelhamento exige antes relayium login. A máquina que recebe não faz login em momento algum.
- As duas pessoas online ao mesmo tempo. O código vive cinco minutos, então combine o momento antes de gerar um.
- Um jeito de ditar seis dígitos fora de banda: uma ligação, uma janela de chat ou a própria sala, quando as duas pessoas estão juntas.
Faça login uma vez com relayium login e depois é só enviar. A CLI gera um código de emparelhamento, exibe-o junto com o comando exato que a outra ponta executa, e fica aguardando. Repasse esse código fora de banda: diga em uma chamada, coloque em um chat:
Na máquina que envia, faça login uma única vez. Pule este passo se relayium whoami já imprime o e-mail da sua conta.
relayium loginNo diretório onde está o arquivo, inicie o envio. A CLI gera o código, imprime o comando para a outra ponta e então aguarda.
relayium send ./release.zipDite fora de banda os seis dígitos que apareceram. Eles param de funcionar cinco minutos depois de gerados.
Na máquina que recebe, dentro do diretório onde os arquivos devem chegar, rode o comando que apareceu para quem enviou. Acrescente um diretório para colocá-los em outro lugar.
relayium receive 483920relayium receive 483920 ./downloadsDeixe os dois terminais abertos até o shell de quem recebe voltar ao prompt. É uma única sessão ao vivo: fechar qualquer uma das pontas interrompe a transferência.
Como é uma execução bem-sucedida
Quem envia imprime primeiro o bloco de repasse e aguarda; depois, um código de verificação e o caminho que conseguiu. Os dois terminais mostram o mesmo código de verificação, e ambos terminam com 0.
# na máquina que ENVIA
Code: 483920 (valid 5 minutes)
On the other machine: relayium receive 483920
not installed there? curl -fsSL https://relayium.com/install.sh | sh
waiting for the receiver…
verification code (SAS): 271044 — not the pairing code; compare it on both ends to rule out a substituted endpoint
path: direct- O código tem 6 dígitos decimais — qualquer um de 0 a 9, zeros à esquerda incluídos — e expira 5 minutos depois de gerado.
- O código é apenas um segredo compartilhado para se encontrar; não é enviado a ninguém além do ponto de encontro, e serve apenas para apresentar as duas pontas.
- A outra ponta não precisa ser a CLI: relayium receive, relayium pair, um app do Relayium ou a página web podem entrar no código. A pessoa não está online agora? Use relayium up para ter um link de download.
Verificar com o código SAS
Quando as duas pontas se conectam, os dois terminais exibem o mesmo SAS (short authentication string) de 6 dígitos derivado das impressões digitais dos certificados TLS fixados. Compare-o fora de banda — leia em voz alta durante a chamada — para confirmar que as impressões digitais não foram substituídas e que o serviço de encontro não se passou por nenhuma das pontas. O SAS autentica as pontas; não prova cada salto da rota de rede.
Para a proteção mais forte, adicione --verify: a transferência então espera que você confirme que os códigos coincidem antes que um único byte se mova.
relayium send --verify ./release.zipRetransmissor ou ponto a ponto — e para o que conta
A linha path mostra por onde os bytes foram: relay, ou direct / lan para ponto a ponto. Nos dois casos o arquivo tem criptografia de ponta a ponta e não há cobrança por transferência — os bytes retransmitidos são contabilizados como uso na cota mensal de tráfego da conta que gerou o código.
As sessões com código de pareamento da CLI do Relayium (send / receive, text e pair) enviam cada byte por um retransmissor TURN criptografado sempre que o servidor emite um para o código — mesmo quando as duas pontas poderiam se conectar diretamente —, e esses bytes retransmitidos contam para a cota mensal de tráfego da conta que gerou o código; o retransmissor só transporta texto cifrado que não consegue ler. Só quando nenhum retransmissor é emitido (nenhum está configurado ou essa cota se esgotou) as duas pontas se conectam ponto a ponto (P2P), e então a sessão falha se não houver um caminho direto.
Se uma transferência não conseguir conectar, as respostas confiáveis são um link armazenado criado com relayium up, ou relayium serve com push / sync entre dois servidores alcançáveis que você administra — esse caminho é direto e não é contabilizado.
- Retransmissor emitido → cada byte passa pelo retransmissor criptografado e conta para a cota mensal de tráfego da conta que gerou o código.
- Nenhum retransmissor emitido → as duas pontas se conectam ponto a ponto se houver um caminho direto; senão, a sessão falha.
Quando não funciona
Quatro falhas explicam quase toda tentativa malsucedida. Cada uma tem uma linha para ler ou um comando para rodar que decide a questão, então nunca é preciso adivinhar qual ponta está com problema.
Sintoma, verificação, correção
- Quem envia nem começa: “minting a pairing code needs an account”.
relayium whoami # not logged in (run `relayium login`)Essa máquina não tem credenciais salvas. Rode relayium login e aprove no navegador; depois disso whoami imprime o e-mail da conta e o envio segue. Nada tinha sido gerado, então nenhum código foi desperdiçado.
- Quem recebe digita o código e o ponto de encontro recusa.
# na máquina que ENVIA: o bloco de repasse informa a vida exata relayium send ./release.zip Code: 483920 (valid 5 minutes)O código expirou. Aperte Ctrl-C em quem envia, rode relayium send ./release.zip de novo e dite os seis dígitos novos dentro dos cinco minutos que o novo bloco de repasse anuncia.
- Os dois terminais mostram códigos de verificação diferentes.
relayium send --verify ./release.zipPare e não envie o arquivo. Códigos diferentes significam que as impressões digitais dos certificados TLS fixadas pelas duas pontas não batem, ou seja, o outro lado não é a máquina que você imagina. Rode de novo com --verify, que trava a transferência exatamente nessa comparação até você confirmar, e cheque com a outra pessoa em qual máquina ela está.
- “no direct connection to the peer (both ends behind strict NAT?)”.
relayium send ./release.zip # no direct connection to the peer (both ends behind strict NAT?): …Uma das pontas usa um relayium antigo cujo pareamento é só direto, e nenhuma conseguiu alcançar a outra. Atualize as duas pontas: um relayium atual passa pelo retransmissor criptografado sempre que o servidor emite um para o código. Senão, leve uma das pontas para uma rede com endereço alcançável — um servidor, ou o roteamento do celular — ou suba o arquivo com relayium up e repasse o link de download.
Perguntas frequentes
De onde vem o código de emparelhamento?
Quem gera é o Relayium. Rode relayium send ./release.zip (depois de relayium login) e a CLI exibe um código de 6 dígitos válido por cinco minutos, junto com o comando exato que a outra ponta executa. Você não pode escolhê-lo — o servidor só aceita os códigos que ele mesmo emitiu.
O arquivo é enviado para algum lugar?
Ele não é guardado. O arquivo flui entre as duas partes, com criptografia de ponta a ponta. Um pequeno handshake no servidor do Relayium apresenta as pontas, e sempre que o servidor emite um retransmissor TURN para o código, os bytes do arquivo passam por ele como texto cifrado que ele não consegue ler — contabilizados na cota mensal de tráfego da conta que gerou o código, e nunca mantidos.
E se não conseguirmos conectar?
Sempre que o servidor emite um retransmissor para o código, a sessão passa por ele, então um NAT estrito não a impede. Quando nenhum é emitido — nenhum está configurado ou a cota da conta que gerou o código se esgotou —, as duas pontas precisam de um caminho direto, e sem ele a transferência falha. Use então um link armazenado do relayium up, ou relayium serve com push / sync entre dois servidores alcançáveis que você administra.
Como sei que é mesmo a pessoa certa do outro lado?
Os dois terminais exibem um código SAS idêntico de 6 dígitos derivado das impressões digitais dos certificados TLS fixados. Compare-o fora de banda; a coincidência confirma que as impressões digitais não foram substituídas e que o serviço de encontro não se passou por nenhuma das pontas. Ele autentica as pontas, não cada salto da rota de rede. Adicione --verify para exigir essa confirmação antes que qualquer byte se mova.
Envie seu próximo arquivo para alguém em outra rede — com criptografia de ponta a ponta e sem cobrança por transferência.
Obter a CLI