====== croc ======
**croc** es una herramienta de línea de comandos para transferir archivos y carpetas de forma segura por la red entre dos equipos. Un **único** ejecutable disponible para varias plataformas.
* [[https://schollz.com/software/croc6|Sitio web]]
* [[https://github.com/schollz/croc|Repositorio de código]]
{{ https://schollz.com/img/projects/croc.jpg |}}
===== Características =====
* No requiere configuración de red como reenvío de puertos o servidores locales.
* **Cifrado de extremo a extremo** usando PAKE (//Password Authenticated Key Exchange//).
* Permite **reanudar transferencias** interrumpidas.
* **Multiplataforma**: funciona en Windows, Linux y macOS.
* **Sin dependencias**: solo necesitas descargar el binario y ejecutarlo.
* Puede usarse un proxy, como [[..:redes:tor|Tor]].
===== Uso =====
Ambos equipos (el que envía y recibe) tienen que tener instalado **croc**.
El que envía ejecuta:
croc send
Esto generá una salida similar a:
Sending 'FICHERO' (175.4 MB)
Code is: 7710-guru-phoenix-cactus
On the other computer run:
(For Windows)
croc 7710-guru-phoenix-cactus
(For Linux/macOS)
CROC_SECRET="7710-guru-phoenix-cactus" croc
Por tanto, en el que recibe ejecutaremos lo siguiente si es un equipo Windows:
croc 7710-guru-phoenix-cactus
Si el que recibe es un equipo Linux:
CROC_SECRET="7710-guru-phoenix-cactus" croc
===== Montar un relay propio =====
Por defecto, **croc** usa el //relay// que hay montado en ''168.119.238.198:9009'' como pasarela para conectar ambos equipos (el que envía y el que recibe) y así no tener que hacer aperturas o reenvíos de puertos. Si queremos usar uno propio, podemos montarlo con Docker. Ejemplo de Docker Compose:
---
services:
croc-relay:
image: schollz/croc
ports:
- 9009-9013:9009-9013
environment:
- CROC_PASS=
**croc** necesita al menos 2 puertos TCP
Para usar **croc** con nuestro //relay//, el equipo que envía:
croc --relay "direccion.ip.del.relay:puerto" --pass fichero_a_enviar.extension
En el equipo que recibe:
CROC_SECRET="4254-coral-ballad-prefix" croc --relay "direccion.ip.del.relay:puerto" --pass
Si usamos como contraseña al montar nuestro propio //relay// la ''pass123'', no será necesario indicarla a la hora de enviar o recibir archivos porque es la que usa por defecto **croc**.
Si usamos como puerto en nuestro //relay// el ''9009'', no será necesario indicarlo a la hora de enviar o recibir archivos porque es el que usa por defecto **croc**.
Como curiosidad, el //relay// que usa por defecto **croc** usa unos 40 TB de ancho de banda al mes. Su autor [[https://github.com/schollz/croc/issues/931|solicita donaciones para pagar el coste mensual]] que eso supone (80 - 100 $)