- Dumbpipe é uma ferramenta no estilo Unix que permite conectar facilmente um pipe de dados entre dois computadores
- A instalação e o uso são muito simples, sem necessidade de conta nem configuração adicional
- Em um computador, ele fica em espera no modo receptor e fornece uma chave secreta e o comando de conexão
- No outro computador, é possível enviar e conectar com uma única linha de comando para transferir os dados
- Funciona independentemente do ambiente de rede, podendo ser usado em qualquer lugar
Apresentando o Dumbpipe
- Ferramenta open source que permite trocar dados diretamente entre dois computadores no estilo de um pipe Unix
- Como pode ser instalada e executada com uma única linha, sem configurações complexas, é prática e bastante acessível
Principais características
- Após instalar em um computador, é possível entrar no modo de espera (recepção) com o comando
./dumbpipe listen
- Ao executar, são fornecidos automaticamente uma chave secreta gerada e um comando de conexão dedicado para acesso a partir do outro computador
- O remetente pode enviar dados com facilidade no formato
echo "hello" | ./dumbpipe connect ...
- Não é necessário criar uma conta
- Pode ser usado imediatamente, sem cadastro, login ou registro de informações do usuário
- Funciona imediatamente sem configuração extra
- Pode ser usado na hora, sem variáveis de ambiente, arquivos de configuração ou ajustes de firewall
- Envio e recebimento de dados entre dois dispositivos em qualquer lugar do mundo
- Funciona sem restrições de ambiente de rede, seja em rede privada, cloud ou rede local
Resumo do uso
- O receptor executa o dumbpipe em modo listen e copia/compartilha a chave e outras informações necessárias para a conexão
- O remetente usa o comando connect com essa chave para transmitir os dados em forma de stream
Implicações práticas
- Até novos usuários ou pessoas com pouca experiência conseguem montar facilmente um pipeline de transferência de dados em rede
- Pode ser aplicado rapidamente a vários usos, como envio de arquivos ou mensagens simples, retransmissão de dados entre dispositivos, desenvolvimento e automação de deploy
- Com um único comando e um fluxo de trabalho intuitivo, contribui para a produtividade de engenheiros
1 comentários
Comentários do Hacker News
Apresenta uma forma de trocar comandos remotamente usando
sshesocatoumkfifoSe o destino estiver bloqueado por firewall ou NAT, é possível usar um servidor SSH público como o ssh-j.com como relay para enviar e receber dados com segurança (usando tunelamento SSH duplo)
Isso foi postado originalmente em uma thread sobre beam link
sshsite oficial do spipedwgpara conectar dois clientes, pode encaminhar dados para os IPs de cada um, mas no fim ainda há um relay central intermediando os dados (independentemente de haver NAT ou não)Fico curioso por que trocar arquivos de forma simples entre dois PCs usando apenas um cabo USB não é algo padronizado. Se todos os sistemas operacionais suportassem o mesmo protocolo, isso parece o tipo de recurso que deveria existir desde o começo. Sei que cabos USB A-A teoricamente não existem, mas isso por si só reforça a necessidade. Com USB-C isso deveria ser perfeitamente possível; entre Android e PC isso até funciona em certa medida, mas entre dois notebooks não
A MS também lançou uma ferramenta com esse suporte, mas aparentemente ela existia apenas para Windows CE link oficial da MS
Relacionado a isso, tenho uma lista de ferramentas de transferência de arquivos que organizei (principalmente baseadas em navegador, com um pouco de CLI). Compartilho quando surge a ocasião e sigo procurando ferramentas boas para adicionar minha lista de ferramentas
Fico pensando quanto de implementação se sobrepõe entre dumbpipe e Tailscale. Parece haver muita funcionalidade em comum entre os dois, então imagino que já existam várias bibliotecas utilizáveis nesse nível mais baixo, como para atravessar NAT. Ou talvez esta seja a primeira biblioteca desse tipo
No pico.sh, uma funcionalidade parecida de transferência de arquivos foi implementada usando SSH pipe.pico.sh
Se você se interessa pelo ecossistema de ferramentas de tunelamento semelhantes a esta, há uma lista awesome que vale consultar awesome-tunneling
O iroh é realmente uma tecnologia fantástica. Participei do workshop do Rüdiger (N0) no web3 summit em Berlim há duas semanas e saí muito inspirado. O código para construir um serviço parecido está disponível aqui código do iroh-workshop, e recomendo também dar uma olhada nos slides
Se você quiser um pipe mais avançado, eu também tenho um CLI de gerenciador de túneis que estou desenvolvendo sobre Iroh. Ele suporta encaminhamento de portas TCP, UDP e sockets UNIX qtm no GitLab
Soluções desse tipo aparecem uma ou duas vezes por ano. Como um bom projeto open source mais focado em orquestração de conexões, recomendo o Spacebrew documentação oficial do Spacebrew
Sempre achei este método especialmente interessante GitHub do pwnat
Ele não cobre todos os casos e é um pouco mais complexo, mas tem a grande vantagem de não precisar de intermediário