Croc una herramienta que permite transferir archivos,directorios y texto, de forma sencilla y segura, entre dos PC's, servidores, etc….
AFAIK, croc es la única herramienta de transferencia de archivos CLI que hace todo lo siguiente:
ipv6-first con respaldo de ipv4.
La instalación podemos hacerla de diferente maneras, también en función de tu sistema operativo
curl https://getcroc.schollz.com | bash
sudo snap install croc
sudo pacman -S croc
Si utilizas Termux en Android:
pkg install croc
Una vez instalado croc en ambos dispositivos, para enviar una archivo o directorio, de un dispositivo a otro, utilizaremos el siguiente comando
croc send archivo.txt
Code is: adrian-freedom-harris
On the other computer run
croc adrian-freedom-harris
Para poder recibir este archivo en el otro dispositivo, introduciremos en su terminal adrian-freedom-harris
El archivo, queda a la espera en el dispositivo origen, a la espera que introduzcamos el siguiente código en el dispositivo destino:
croc adrian-freedom-harris
El otro dispositivo preguntará, si queremos descargar el archivo. Pulsaremos y para descargarlo.
croc adrian-freedom-harris
Accept 'archivo.txt' (208.3 kB)? (y/n)
El resultado será..
Receiving (<-[::1]:44504)
unison.log 100% |████████████████████| (203/203 kB, 2.943 MB/s) [0s:0s] ✔️
Ahora mi Raspberry se comunica perfectamente con mi PC
Para automatizar esta tarea mediante un script, podemos enviar con la opción –code nuestro propio código (debe tener más de 4 caracteres).
croc send --code [código_frase] ~/directorio
Para enviar un texto:
croc send --text "hola mundo"
cat archivo.txt | croc send
Entre las opciones de croc, incluye el levantar tu propio relay:
croc relay
De forma predeterminada, utiliza los puertos TCP 9009-9013. Asegúrate de abrirlos. Puede personalizar los puertos (por ejemplo croc relay –ports 1111,1112), pero debe tener un mínimo de 2 puertos para el relay.
El primer puerto es para la comunicación y los puertos subsiguientes se utilizan para la transferencia de datos multiplexados.
Puede enviar archivos usando su relay ingresando –relay para cambiar el relé que está usando si desea personalizar el suyo propio.
croc --relay "mirelay.duckdns.org:9009" send archivo.txt
al enviar, solo necesita incluir el primer puerto (puerto de comunicación). Los puertos posteriores son para la transferencia de datos que se transmitirán al usuario desde el relay.
Para crear nuestro relay permanente utilizando docker:
docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='TU_CONTRASEÑA' schollz/croc
Asegúrate de incluir la contraseña para el relay, de lo contrario, se rechazarán las solicitudes.
croc --pass TU_CONTRASEÑA --relay "mirelay.duckdns.org:9009" send archivo
En el otro dispositivo pondremos para descargar utilizando nuestro relay:
croc --pass TU_CONTRASEÑA --relay "mirelay.duckdns.org:9009" código_que_dará_nuestro_relay
version: '3'
services:
croc:
image: ugeek/croc:arm64
container_name: croc-relay
environment:
- CROC_PASS=xxxxxxxxxxxxx
restart: always
ports:
- '9009-9013:9009-9013'
croc --pass CONTRASEÑA --relay "mi.duckdns.org:9009" send --code este-es-mi-codigo archivo.txt
Para no tener que confirmar la descarga, en casos que quieras automatizar esta con un script, utilizaremos –yes
croc --yes --pass CONTRASEÑA --relay "mi.duckdns.org:9009" send --code este-es-mi-codigo archivo.txt
Si no deseas tener que poner en tu dispositivo siempre la contraseña de tu realy, ya que tu dispositivo en de confianza, puedes añadir una variable en ./bashrc o ./zshrc, para que al iniciar bash cargue esta contraseña. Yo he utilizado:
export CROC_RELAY="--yes --pass CONTRASEÑA --relay mi.duckdns.org:9009"
Ahora para enviar lo hariamos:
croc $(echo $CROC_RELAY) send --code este-es-mi-codigo archivo.txt
Recargamos los cambios, por ejemplo en *.bashrc:
source ~/.bashrc
Comando de ayuda y más opciones:
croc -h
NAME:
croc - easily and securely transfer stuff from one computer to another
USAGE:
Send a file:
croc send file.txt
Send a file with a custom code:
croc send --code secret-passphrase file.txt
VERSION:
v8.3.2-7d155ad
COMMANDS:
send send a file (see options with croc send -h)
relay start your own relay (optional)
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--remember save these settings to reuse next time (default: false)
--debug toggle debug mode (default: false)
--yes automatically agree to all prompts (default: false)
--stdout redirect file to stdout (default: false)
--no-compress disable compression (default: false)
--ask make sure sender and recipient are prompted (default: false)
--relay value address of the relay (default: "142.93.177.120:9009") [$CROC_RELAY]
--relay6 value ipv6 address of the relay (default: "[2604:a880:800:c1::14c:1]:9009") [$CROC_RELAY6]
--out value specify an output folder to receive the file (default: ".")
--pass value password for the relay (default: "pass123") [$CROC_PASS]
--help, -h show help (default: false)
--version, -v print the version (default: false)
Publicado por Angel el Sunday 20 September del 2020 y actualizado el Wednesday 15 February del 2023
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.