LINUCA
LINUCA - Asociación de Usuarios GNU/Linux en Cantabria
CONTENIDOS
. La Asociación
. ¡ Apúntate a socio !
. Fotos
. Los más leídos
. Autores [Actividad]
. Últimos Comentarios
. ¡Todos los titulares!
. Guía de Estilo
. Cómo publicar en Linuca
. Links cortos
. Lista de Correo
   [Mensajes antiguos]
   [Etiqueta en la Lista]
. Todas las Listas
. ¿Sugerencias?
. ¡Sindícanos!
Gràcies Bulma!
Esta página usa el código fuente de Bulma :-)
Busquedas

Ultimos kernels
(03/09/2010 04:50:59)
Debian
Última actualización
stable: 26/06/2010
testing: 03/09/2010
unstable: 03/09/2010
Netcat o nc (22067 lecturas)
Por Rubén Ramos
RiCe (http://www.nuteca.com)
Creado el 07/05/2004 03:03 modificado el 20/05/2004 01:18

Como solventar el problema de transferir unos ficheros de manera directa y ágil con la herramienta Netcat.

También algunos ejemplos de posibles usos del netcat: chat, webserver, obtener información de conexiones ajenas, ...

Pagina1/1

Netcat o nc

Quiero comentar muy ligeramente una herramienta que me parece de gran utilidad, el netcat.
Es una herramienta muy simple que escribe y lee através de la red, según el autor es como una navaja Suiza para la transferencia en la red. En el manual resalta estas cualidades:
  • Outbound or inbound connections, TCP or UDP, to or from any ports
  • Full DNS forward/reverse checking, with appropriate warnings
  • Ability to use any local source port
  • Ability to use any locally-configured network source address
  • Built-in port-scanning capabilities, with randomizer
  • Built-in loose source-routing capability
  • Can read command line arguments from standard input
  • Slow-send mode, one line every N seconds
  • Hex dump of transmitted and received data
  • Optional ability to let another program service established connections
  • Optional telnet-options responder
Para obtenerlo te puedes dirigir aquí. En la mayoría de las distribuciones con gestor de paquetes se refieren a este software con el nombre de netcat, aunque el binario para ejecutarlo suele llamarse nc.

Cómo usarlo?

nc [-options] hostname port[s] [ports] ...
nc -l -p port [-options] [hostname] [port]
En el manual describe muchos posibles usos, incluso como hacer un miniChat con él. Aunque el uso que más me gusta es poder pasar mucha cantidad de ficheros como si fuera un tar.
Para cerrar la conexión pulsa "Ctrl+c".

Las opciones que más comunes son:
-l modo en escucha
-p port número puerto
-v verbose, información detallada
-v -v very verbose, información más detallada
-z escanear
- salida estándar muy usada en entornos unix
| piper, permite pasar la salida de un programa por otro
tar xvjf descomprime un tar.bz2
tar cvjf comprime un directorio a tar.bz2
Los puertos que hay en los ejemplos están puestos al azar y se pueden cambiar por cualquier otro.
Para poder hacer las pruebas en un solo pc, basta con tener dos consolas abiertas, una para el servidor y otra para el cliente, y poner en la IP "localhost" o 127.0.0.1

Pasar ficheros

La máquina que recibe los datos debe estar así:
nc -l -p 6000 |tar xvfj -
La máquina que envía los datos debe estar así:
tar cvfj - directorio/ | nc IP_MaquinaQueRecibe 6000
Imagínate dos equipos, donde el que va a recibir los datos no tiene espacio suficiente para almacenar un tar y luego descomprimirlo, o sencillamente deseas pasar una cantidad de directorios y ficheros sin problemas.

De esta forma puedes pasar el directorio de una sola vez y con los permisos de los ficheros sin tocar.

Para conseguir el mismo propósito pero con el ssh se puede conseguir así:
tar cvzf - FICHEROS_A_EMPAQUETAR | ssh usuario@host_remoto \
"cat > /path/donde/dejarlos/nombre_del_fichero.tgz"
Gracias deabru.

Montar un chat

La máquina que recibe los datos debe estar así:
nc -l -p 5777
La máquina que envía los datos debe estar así:
nc IP_MáquinaQueRecibe 5777
De esta forma podrás escribir en la conexión que envía, al pulsar el enter lo recibe la máquina que se mantiene a la escucha. Para que cada máquina pueda recibir y enviar deben tener abiertas dos consolas, una recibiendo y otra enviando.

Averiguar servidor

nc -v -v IP_Máquina 80
Para saber que servidor esta funcionando en un determiado puerto de un servidor, es muy útil para saber el nombre y servidor del servidor http o ftp ...

Sacar información de un cliente

nc -v -v -l -p 80
Cuando un cliente se conecte a un ordenar que esté en escucha de esta forma, sacará información de la ip, browser y Sistema Operativo.

Webserver

nc -l -p 80 < NombreArchivo.html
Para servir de forma puntual un solo fichero html. Cada vez que se desconecta el cliente debes lanzar otra vez la aplicación.

Conclusiones

El netcat es una aplicación muy verstátil, que permite hacer muchos experimentos, tampoco es que tenga ningún uso 'profesional', pero juntando algún comando del netcat con otro poco de bash, se pueden conseguir cosas muy sencillas y curiosas.

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
1.  lo mismo pero con ssh (07/05/2004 13:55, #1650)
  Por: deabru
pues eso, que se puede hacer lo mismo con ssh, si bien es cierto que no está en todos los sistemas, en las redes privadas nuestras seguro que lo tenemos, y encima tiene el añadido de la seguridad (aunque chupa algo más, nc es más liviano al no codificar nada :) )

tar cvzf - FICHEROS_A_EMPAQUETAR | ssh usuario@host_remoto "cat > /path/donde/dejarlos/nombre_del_fichero.tgz"

 
2.  Re: lo mismo pero con ssh (07/05/2004 16:44, #1652)
  Por: RiCe (http://www.linuca.org)
Sí, esto también es muy útil.

:)

 
3.  Re: lo mismo pero con ssh (09/06/2004 21:20, #1777)
  Por: El cobarde anónimo
scp fichero_local.tgz usuario@maquina:ruta/

 
4.  Re: Netcat o nc (07/05/2004 16:03, #1651)
  Por: Claumann (http://www.folha.com.br)
I like it!

 
5.  Re: Netcat o nc (10/05/2004 03:04, #1662)
  Por: El cobarde anónimo
Este Claumann es un usuario de Linuca o es un spammer que sólo quiere links a su web ?? (lo pregunto sin maldad, no me suena de verle por aquí).

 
6.  Re: Netcat o nc (26/08/2005 01:50, #3896)
  Por: El cobarde anónimo (http://www.cbm.com.ar)
Me gusto el artículo, si es breve y bueno 2 veces bueno.

Hasta ahora mis backups de particiones por red los hacía con:

dd if=/dev/hda1 conv=sync,noerror | gzip -1 | ssh -c blowfish 192.168.0.1 dd of=/tftpboot/backups/$1

donde $1 es el nombre que le quiero dar al destino (esto lo tengo en un script)

Mi problema es que aun usando el blowfish como cifrado el uso de cpu es bastante alto, tanto en el cliente como en el servidor.

Vere si puedo hacer algo con el nc.

 
Calificacion
***0
Votos: 26
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
SECCIONES
Artículo
Truco
Noticias
Breve
Enlace
Linuca
Libros
Tira ECOL
Tira Ecol
Modificado: 26/1/2010 15:13:11 | Tiempo Total: 0.010 segs | Kernel: Linux - x86_64 - 2.6.18-xen | Last Boot: 11/07/2007 09:14 CEST
Powered By WEB-Bulma   Apache   Mysql   PHP   Gimp