Para transferir temporalmente un archivo grande de Windows a Linux, las soluciones comunes requieren iniciar sesión en el disco de la nube, configurar SSH, abrir puertos o configurar un servicio HTTP temporal. croc reduce el proceso a enviar un comando y una frase: los dos extremos establecen una conexión a través de un relé y luego usan PAKE para derivar claves para el cifrado de un extremo a otro.
Compatible con Windows, Linux y macOS, croc puede enviar un solo archivo, varios archivos, directorios o texto breve, y puede continuar una transferencia interrumpida. El relé público predeterminado es adecuado para uso temporal; También puede ejecutar su propia retransmisión cuando tenga requisitos más estrictos en cuanto a límites de red, disponibilidad o registro de conexiones.
Respuesta rápida
El remitente ejecuta:
|
|
El terminal mostrará una frase de recepción similar a example-code-phrase. El receptor de Windows se ejecuta directamente:
|
|
La recomendación actual para Linux y macOS es pasar la contraseña a través de una variable de entorno para evitar que aparezca en el nombre del proceso:
|
|
Acepte la transferencia después de confirmar que el remitente, el nombre del archivo y el tamaño son correctos. No publique la frase de recepción en chats grupales, tickets o registros públicos; la persona que reciba la frase podrá intentar unirse a la transmisión.
por qué croc no necesita reenvío de puertos
De forma predeterminada, croc permite que tanto el remitente como el receptor se conecten activamente al relé. Por lo tanto, incluso si los dos dispositivos están detrás de NAT o firewalls diferentes, generalmente no es necesario configurar direcciones IP públicas, puertos de entrada o servidores locales.
El relé es responsable de ayudar a ambos extremos a encontrarse y reenviar datos. El contenido del archivo está cifrado de extremo a extremo mediante la clave generada por el remitente y el receptor a través de PAKE (Acuerdo de clave autenticada por contraseña, Acuerdo de clave de autenticación de contraseña). El relevo soluciona el problema de conectividad y la frase participa en el establecimiento de una sesión cifrada compartida por ambas partes.
Esto no significa que se pueda ignorar la seguridad de la contraseña. La frase generada automáticamente debe entregarse al destinatario a través de un canal confiable y la información del archivo aún debe verificarse antes de la transmisión. Para entornos sensibles, también se deben evaluar los metadatos de conexión, el historial del terminal, el portapapeles y los permisos del directorio de recepción visibles para el retransmisor.
Instalar cocodrilo
ventanas
Utilice WinGet:
|
|
También puedes elegir Scoop o Chocolatey:
|
|
|
|
Verifique la versión una vez completada la instalación:
|
|
MacOS
El usuario de Homebrew ejecuta:
|
|
Usando MacPorts:
|
|
Linux
Arco Linux:
|
|
Fedora:
|
|
Si el repositorio de versiones no tiene una versión adecuada, puede descargar el archivo correspondiente de las versiones oficiales o utilizar el script de instalación oficial:
|
|
Se recomienda descargar y revisar el contenido antes de ejecutar scripts remotos en dispositivos de producción. Cuando Go 1.22 o superior ya está instalado, también puedes instalarlo desde la fuente:
|
|
Enviar archivos, directorios y múltiples elementos
Enviar un archivo:
|
|
Enviar el directorio completo:
|
|
Envíe varios archivos y directorios a la vez:
|
|
Al enviar el directorio del proyecto, puede excluir dependencias innecesarias y entornos virtuales:
|
|
--exclude Recibe nombres separados por comas. Es mejor confirmar el rango de exclusión antes de realizar la transferencia para evitar enviar juntos archivos clave, archivos de variables de entorno, cachés y directorios de dependencia grandes.
Personalizar frase de recepción
La frase aleatoria predeterminada es adecuada para la mayoría de situaciones. Si necesita comunicarse por teléfono, etc., puede especificar una frase de al menos seis caracteres:
|
|
La frase personalizada debe ser bastante difícil de adivinar. No utilice nombres de proyectos, números de teléfono, fechas ni contraseñas débiles como 123456. Las frases sólo deben entregarse al destinatario previsto y no reutilizarse en otros documentos después de la transmisión.
Los receptores de Linux y macOS recomiendan usar esto:
|
|
En un sistema monousuario confiable, el comportamiento de tomar frases directamente como parámetros se puede restaurar de la forma clásica:
|
|
El método clásico es más conveniente, pero la contraseña puede quedar expuesta a otros procesos o herramientas de monitoreo en la máquina a través de parámetros de proceso. Esta configuración no se recomienda para servidores compartidos por varias personas.
Envía texto, usa canalizaciones y códigos QR
Enviar texto breve o URL:
|
|
Enviar contenido desde la entrada estándar:
|
|
Escriba directamente en el archivo después de recibir:
|
|
Al realizar el envío al teléfono móvil, podrá hacer que el terminal muestre el código QR:
|
|
El código QR también contiene la información necesaria para unirse a la transmisión y no debe mostrarse en transmisiones públicas en vivo, capturas de pantalla o grabaciones.
Cómo utilizar la transferencia de currículum de punto de interrupción
croc apoya la reanudación de las transferencias interrumpidas. Después de desconectar la red, conserve el archivo original en el remitente y algunos archivos escritos por el receptor, y luego vuelva a ejecutar el proceso de transferencia. Cuando hay cambios significativos en la ruta de recepción, el contenido del archivo o las condiciones de retransmisión, es posible que la recuperación no funcione como se esperaba.
Preste atención a tres puntos durante la operación real:
- No elimine ni cambie el nombre de los archivos inacabados en el extremo receptor;
- No modifique el archivo fuente de envío antes de la recuperación;
- Confirme que el espacio restante en el disco sea suficiente para acomodar el archivo completo.
Si la recuperación falla repetidamente, primero use un archivo pequeño para probar la conectividad entre ambos extremos y el relé, y luego verifique si las versiones son demasiado diferentes, si el proxy es estable y si el software de seguridad intercepta la conexión.
Transferencia a través del proxy SOCKS5
croc puede especificar un proxy SOCKS5. Por ejemplo, el agente nativo escucha 127.0.0.1:9050:
|
|
Los proxies afectan las rutas y velocidades de conexión, pero no reemplazan el cifrado de croc en sí. Si el extremo receptor también necesita un proxy depende de su entorno de red. Al solucionar problemas, debe verificar por separado si se puede acceder al puerto proxy, el método de procesamiento DNS y la dirección de retransmisión.
Relé de cocodrilo de construcción propia
La forma más sencilla es ejecutarlo directamente en el servidor:
|
|
De forma predeterminada, se utiliza el puerto TCP 9009-9013. Proporcione al menos dos puertos cuando se requiera personalización:
|
|
El remitente especifica un relé de construcción propia:
|
|
Utilice Docker y establezca una contraseña para la retransmisión:
|
|
Proporcione la dirección de retransmisión y la contraseña al enviar:
|
|
Antes de la implementación, debe liberar los puertos TCP reales en el firewall de la nube y el firewall del host. La contraseña de retransmisión no debe escribirse directamente en un script compartido, historial de shell o archivo de redacción público; es más apropiado inyectarlo desde una variable de entorno controlada o un sistema de gestión de claves.
Un repetidor de construcción propia puede controlar la ubicación del repetidor, la política de acceso y la disponibilidad, pero no puede reemplazar la seguridad de los terminales. Cuando en el extremo emisor se implantan programas maliciosos, los permisos del directorio receptor son incorrectos o se filtra la frase, los servidores autoconstruidos no pueden resolver estos problemas.
Parámetros que requieren precaución al automatizar
El siguiente comando omite la confirmación y permite sobrescribir archivos con el mismo nombre:
|
|
Es adecuado para tareas automatizadas que están claramente controladas y no es adecuado para ejecutarlas de manera casual en directorios que no son de confianza. El mensaje de confirmación predeterminado puede ayudar a detectar anomalías en el nombre, el tamaño o el origen del archivo. No habilite --yes y --overwrite a menos que el script haya verificado de forma independiente el objetivo receptor.
El envío silencioso se puede realizar usando:
|
|
El modo silencioso reduce la salida del registro y puede enmascarar la causa del error. El código de salida debe verificarse al mismo tiempo en la tarea programada y la salida del error debe escribirse en el registro protegido.
Solución de problemas comunes
Después de ingresar frases en ambos extremos, la conexión no ha podido ocurrir.
Primero confirme si la versión de croc, la hora del sistema y el acceso a la red en ambos extremos son normales, y luego verifique si el firewall, proxy u operador de la empresa bloquea el puerto de retransmisión. Puedes volver a intentarlo con un archivo pequeño para determinar si el problema proviene de la conexión o del archivo en sí.
Ejecutar croc 短语 directamente en Linux o macOS no cumple con las expectativas
La nueva versión recomienda poner la frase en CROC_SECRET:
|
|
Esto es para reducir el riesgo de que la frase se filtre a través del nombre del proceso, no del error de instalación.
Ya existe un archivo con el mismo nombre en el extremo receptor
Priorice mantener el mensaje de confirmación y verifique la fuente antes de decidir si sobrescribirla. --yes --overwrite solo se considera si el script ha verificado la identidad del archivo y la ruta de destino.
El relé de construcción propia se puede conectar pero no puede transmitir
Verifique que todo el rango de puertos esté asignado y liberado, no solo el primer puerto. El relé predeterminado utiliza 9009-9013; Al personalizar el alcance, la asignación de Docker, el firewall del host, el grupo de seguridad de la nube y los parámetros de inicio de Croc deben ser consistentes.
¿Para qué escenarios es adecuado el cocodrilo?
croc es muy adecuado para transferir archivos temporalmente entre plataformas, ayudar de forma remota a los usuarios a exportar registros, transferir productos compilados entre dispositivos sin cuentas SSH y migrar directorios de computadoras antiguas a computadoras nuevas. No requiere que ambas partes registren cuentas, ni requiere que el extremo receptor abra un puerto de entrada.
Si se requiere sincronización a largo plazo, historial de versiones, gestión de derechos de equipo o copias de seguridad a gran escala, Syncthing, almacenamiento de objetos, rsync o un sistema de copia de seguridad dedicado suelen ser más adecuados. croc está posicionado para simplificar transferencias únicas o de corto plazo, no para reemplazar una solución completa de administración de datos.
Resumen
croc comprime la transferencia de archivos entre redes en tres pasos: “enviar archivo, compartir frase, recibir confirmación”, al tiempo que conserva el cifrado de extremo a extremo, multiplataforma, reanudación de puntos de interrupción y capacidades de retransmisión autoconstruidas. Simplemente use el relé público predeterminado para uso diario; Las redes sensibles o controladas pueden implementar sus propios relés pero aún así proteger las frases de recepción, el historial de los terminales, los permisos de archivos y los dispositivos de los terminales.
Dirección del proyecto: schollz/croc