- Dumbpipe es una herramienta de estilo Unix que permite conectar un pipe de datos fácilmente entre dos computadoras
- La instalación y el uso son muy simples, y no requieren cuenta ni configuración adicional
- En una computadora, espera en modo receptor y proporciona una clave secreta y un comando de conexión
- En la otra computadora, se pueden enviar datos y conectarse con una sola línea de comando
- Funciona sin importar el entorno de red, así que puede usarse desde cualquier ubicación
Introducción a Dumbpipe
- Una herramienta open source para intercambiar datos directamente entre dos computadoras, al estilo de un pipe de Unix
- Como puede instalarse y ejecutarse en una sola línea sin configuraciones complejas, es práctica y muy accesible
Características principales
- Después de instalarlo en una computadora, se puede entrar en modo de espera (recepción) con el comando
./dumbpipe listen
- Al ejecutarlo, se genera automáticamente una clave secreta y se proporciona un comando de conexión dedicado para que la otra computadora pueda conectarse
- El emisor puede enviar datos fácilmente con algo como
echo "hello" | ./dumbpipe connect ...
- No hace falta crear una cuenta
- Se puede usar de inmediato, sin registro, inicio de sesión ni alta de datos de usuario
- Funciona de inmediato sin configuración adicional
- Puede usarse enseguida sin variables de entorno, archivos de configuración ni ajustes de firewall
- Permite enviar y recibir datos entre dos dispositivos desde cualquier parte del mundo
- Funciona sin limitaciones por entorno de red, ya sea red privada, nube o red local
Resumen del ejemplo de uso
- El receptor ejecuta dumbpipe en modo listen y copia/compartе la clave y otros datos necesarios para la conexión
- El emisor usa el comando
connect con esa clave para transmitir los datos en forma de stream
Implicaciones prácticas
- Incluso usuarios nuevos o con poca experiencia pueden armar fácilmente un pipeline de transferencia de datos por red
- Puede aplicarse rápidamente a distintos usos, como envío de archivos o mensajes simples, relay de datos entre dispositivos, desarrollo y automatización de despliegues
- Su comando único y flujo de trabajo intuitivo contribuyen a la productividad de los ingenieros
1 comentarios
Comentarios de Hacker News
Se presenta un método para intercambiar comandos de forma remota usando ssh y socat o mkfifo
Si el destino está bloqueado por un firewall o NAT, se puede usar un servidor SSH público como ssh-j.com como relay para enviar y recibir datos de forma segura (usando túneles SSH dobles)
Esto fue publicado originalmente en un hilo sobre beam enlace
Me pregunto por qué no es un estándar poder transferir archivos fácilmente entre dos PCs usando solo un cable USB. Si todos los sistemas operativos soportaran el mismo protocolo, parecería una función que debería haber existido desde el principio. Sé que en teoría no existe el cable USB A-A, pero justo eso refuerza la necesidad. Con USB C debería ser totalmente posible; entre Android y una PC se puede hasta cierto punto, pero entre dos laptops no
Microsoft también sacó una herramienta para eso, pero al parecer solo estaba disponible para Windows CE enlace oficial de MS
Relacionado con eso, tengo una lista que armé de herramientas para transferir archivos (principalmente basadas en navegador y algo de CLI). La comparto cada vez que surge el tema y sigo buscando buenas herramientas para agregar mi lista de herramientas
Me pregunto cuánto trabajo duplicado hay entre dumbpipe y Tailscale. Parece que comparten muchas funciones necesarias, y da la impresión de que ya debería haber muchas librerías de bajo nivel reutilizables para cosas como atravesar NAT. O quizá esta sea la primera librería de ese tipo
En pico.sh implementaron una función similar de transferencia de archivos usando SSH pipe.pico.sh
Si te interesa el ecosistema de herramientas de túneles similares a esta, hay una lista awesome que vale la pena revisar awesome-tunneling
iroh es una tecnología realmente fantástica. Hace dos semanas asistí al workshop de Rüdiger (N0) en la web3 summit de Berlín y me dejó súper inspirado. El código para crear un servicio parecido está publicado aquí código de iroh-workshop; también recomiendo mucho revisar las diapositivas
Si quieres un pipe más avanzado, también tengo un CLI de gestor de túneles que estoy construyendo sobre Iroh. Soporta port forwarding para sockets TCP, UDP y UNIX qtm en GitLab
Este tipo de soluciones salen una o dos veces al año. Como buen open source enfocado en la orquestación de conexiones, recomiendo Spacebrew documentación oficial de Spacebrew
Siempre me ha parecido especialmente interesante este método GitHub de pwnat
No cubre todos los casos y es un poco más complejo, pero tiene la gran ventaja de no necesitar un intermediario