LinuxParty
Woof (abreviatura de Web Offer One File ) es una aplicación simple para compartir archivos entre hosts en una pequeña red local. Consiste en un pequeño servidor HTTP que puede servir un archivo especificado durante un número determinado de veces (el valor predeterminado es una vez) y luego termina.
(Afortundamente woof es multiplataforma, porque funciona con Python, descargue Python en Windows y configúrelo apropiadamente para poder usarlo )
DEBE de HABILITAR en el cortafuegos el PUERTO 8080, para el intercambio de archivos, en el equipo que ejecute Woof
Por ejemplo para permitir el puerto 8080 en Linux (como root)
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
Las reglas del cortafuegos (iptables) se guardan en: /etc/sysconfig/iptables
Puedes guardar una copia en /root, lo personalizas y cargas tus reglas con:
iptables-restore < tus-reglas-de-tu-fw.reglas
Para usar woof, simplemente invócalo con un único archivo, y el destinatario puede acceder a tu archivo compartido a través de un navegador web o usando un cliente web de línea de comandos como cURL , HTTPie , wget o kurly (una alternativa curl) desde el terminal .
Una ventaja de woof sobre otras herramientas para compartir archivos es que comparte archivos entre un sistema operativo diferente o diferentes dispositivos (computadoras, teléfonos inteligentes, tabletas, etc.), siempre que el destinatario tenga instalado un navegador web.
En este artículo, mostraremos cómo instalar woof en Linux y usarlo para compartir archivos en una red local.
Cómo instalar y usar Woof en Linux
En Debian y Ubuntu, puede instalar fácilmente el paquete ' woof ' desde los repositorios predeterminados de la distribución usando apt o apt-get package manager como se muestra.
$ sudo apt install woof O $ sudo apt-get install woof
En otras distribuciones de Linux, puede descargar el script woof usando el comando wget y moverlo al directorio /usr/local/bin como se muestra.
$ wget http://www.home.unix-ag.org/simon/woof
$ chmod a+x woof $ sudo cp woof /usr/local/bin
Si no copias el archivo en /usr/local/bin, debes invocar woof, con el "./" delante:
./woof archivo.txt
Enviar archivos.
Para compartir (enviando) un archivo, proporciónelo como argumento como se muestra.
$ woof ./bin/bashscripts/getpubip.sh
Luego, woof generará una URL ( http://192.168.43.31:8080/ en este caso -La IP será la de tu máquina-) que su socio puede usar para acceder al archivo.
Si necesitara enviar varios archivos, lo mejor es comprimirlos y enviarlos (se explica más adelante), pero también puede hacer:
woof ./ruta/archivo1.xxx ; woof ./ruta/archivo2.xxx ; woof ./ruta/archivo3.xxx
Compartir archivo con Woof
Enviar la URL al destinatario. Una vez que el destinatario accede al archivo, woof se apagará (vea la siguiente captura de pantalla).
Acceso al archivo compartido a través de Woof
Nota : En el ejemplo anterior, hemos utilizado el descargador de línea de comandos wget para obtener el archivo compartido, y automáticamente asigna al archivo descargado un nombre diferente (por ejemplo, index.html ).
Para especificar un nombre personalizado, use la opción -O
como se muestra.
$ wget -O custom_name http://192.168.43.31:8080
Alternativamente, también puede acceder al archivo compartido desde el navegador web como se muestra (haga clic en Guardar archivo para descargarlo).
![Descargar el archivo compartido del navegador web](https://www.tecmint.com/wp-content/uploads/2019/01/access-shared-file-from-web-browser.png)
Descargar el archivo compartido del navegador web
Por defecto, woof comparte el archivo una vez, y después de que el destinatario lo descarga, woof termina. Puede establecer el número de veces que woof comparte un archivo antes de que se apague, utilizando la opción -c
.
El siguiente comando terminará woof después de tres descargas.
$ woof -c 3 ./bin/bashscripts/getpubip.sh
Para compartir un directorio, puede crear un tarball y comprimirlo usando ( -z
para la compresión gzip, o -j
para la compresión bzip2, o -Z
para la compresión ZIP). Por ejemplo:
$ woof -c 2 -z ./bin/
Consulte el nombre del archivo de descarga, debe ser un archivo Gzip como se muestra en la siguiente captura de pantalla.
![Descargar archivo comprimido de archivo Tar](https://www.tecmint.com/wp-content/uploads/2019/01/download-shared-archive-file-with-compression.png)
Descargar archivo comprimido de archivo Tar
Recibir (o traer) un archivos.
En el ordenador de origen (donde está el archivo a traer) hay que abrir la URL / ip que tenemos en el ordenador de destino, para ello basta usar un navegador web cualquiera. El archivo se enviará al equipo de destino automáticamente.
Además, puede usar el indicador -U
para indicarle a woof que proporcione un formulario de carga que permita la carga de archivos.
Ideal para que accedan a la IP suya y le envíen el archivo.
El archivo se descargará en el directorio actual desde donde se lanzó Woof:
$ woof -U
Si desea recibir varios ficheros, puede escribir (en este caso 10 )
Directamente en la consola de Linux un bucle con 10 elementos:
for i in {1..10} ; do woof -U ; done
Para ver el progreso:
for i in {1..10} ; do echo $i; woof -U ; done
Luego, su socio puede usar la URL generada para acceder al formulario de carga desde un navegador como se muestra.
![Formulario de carga de archivos de Woof](https://www.tecmint.com/wp-content/uploads/2019/01/browse-and-select-file-to-be-uploaded.png)
Formulario de carga de archivos de Woof
Después de explorar y seleccionar el archivo, haga clic en el botón Cargar para cargar archivos.
![Woof File Upload completo](https://www.tecmint.com/wp-content/uploads/2019/01/woof-upload-complete.png)
Woof File Upload completo
Recuerde, que solo se puede enviar un archivo por lanzamiento de Woof, por lo que si son muchos, indique que cree un fichero comprimido con todos juntos.
Puede verificar que el archivo debe cargarse en el mismo directorio donde se invocó woof.
Verificar cargas de archivos
Para hacer más usable el programa en teléfonos smartphone, hemos modificado el código de la línea 224 y lo hemos quedado de la siguiente manera.
Código original
def do_GET (self): global maxdownloads, cpid, compressed, upload # Form for uploading a file if upload: txt = b"""\ <html> <head><title>Woof Upload</title></head> <body> <h1>Woof Upload</title></h1> <form name="upload" method="POST" enctype="multipart/form-data"> <p><input type="file" name="upfile" /></p> <p><input type="submit" value="Upload!" /></p> </form> </body> </html> """ self.send_response (200) self.send_header ("Content-Type", "text/html") self.send_header ("Content-Length", str (len (txt))) self.end_headers () self.wfile.write (txt) return # Redirect any request to the filename of the file to serve. # This hands over the filename to the client.
Código modificado:
O puede directamete utilizar el código fuente ya modificado desde éste post:
woof Código fuente
def do_GET (self): global maxdownloads, cpid, compressed, upload # txt = b"""\ # <html> # <head><title>Woof Upload</title></head> # <body> # <h1>Woof Upload</title></h1> # <form name="upload" method="POST" enctype="multipart/form-data"> # <p><input type="file" name="upfile" /></p> # <p><input type="submit" value="Upload!" /></p> # </form> # </body> # </html> # """ # Form for uploading a file if upload: txt = b"""\ <html> <head><title>Woof Upload</title> </head> <body> <table border="1" cellpadding="1" cellspacing="1" style="height:100%; width:100%"> <tr> <td> <h1><span style="font-size:45px">Woof Upload</span></h1> </td> </tr> <tr> <td> <form class="formatoReporte" name="upload" method="POST" enctype="multipart/form-data"> <p><input style="font-size:200%" type="file" name="upfile" /></p> <p><input style="font-size:200%" type="submit" value="Upload!" /></p> </form> </td> </tr> </table> </body> </html> """ self.send_response (200) self.send_header ("Content-Type", "text/html") self.send_header ("Content-Length", str (len (txt))) self.end_headers () self.wfile.write (txt) return # Redirect any request to the filename of the file to serve. # This hands over the filename to the client.
O puede directamete utilizar el código fuente ya modificado desde éste post:
woof Código fuente
Que deberá copiar en un fichero y darle los permisos de ejecución:
chmod a+x woof
Si tiene conocimientos de HTML, le ruego me sugiera modificaciones, bien escribiendo en los comentarios o si fuera necesario enviado un email a: sugerencias arroba linuxparty punto es
Puede ver más opciones de uso ejecutando:
$ man woof O $ woof -h
Woof es un servidor HTTP pequeño, simple y fácil de usar para compartir archivos en una red de áreas locales. En este artículo, mostramos cómo instalar y usar woof en Linux. Use el formulario de comentarios a continuación para compartir sus opiniones sobre esta herramienta o hacer preguntas
![](/images/banners/linux-party-png-para-articles.png)
-
Linux
- Cómo mantener Linux optimizado (y ahorrar tiempo) con Stacer
- Cambiar la Hora y la Fecha al sistema Linux
- Montar un directorio remoto, vía NFS, en Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home