Diferencia entre revisiones de «Netcat»

De Guía Ubuntu
Saltar a: navegación, buscar
(netcat)
 
m
 
(No se muestran 14 ediciones intermedias realizadas por 2 usuarios)
Línea 1: Línea 1:
Una sencilla herramienta de Unix que lee y escribe datos a través de conexiones de red mediante los protocolos TCP o UDP. Está diseñada para ser un “motor” confiable que puede usarse directamente o manejarse fácilmente mediante otros programas o guiones (scripts). Al mismo tiempo es una herramienta rica en características para la exploración y depuración de redes, dado que puede crear casi cualquier tipo de conexión que pudiese necesitar y tiene muchas capacidades interesantes integradas.
+
'''Netcat''' (abreviado '''nc''') es una sencilla herramienta de Unix que lee y escribe datos a través de conexiones de red mediante los protocolos TCP o UDP. Está diseñada para ser un "motor" confiable que puede usarse directamente o manejarse fácilmente mediante otros programas o guiones (scripts). Al mismo tiempo es una herramienta rica en características para la exploración y depuración de redes, dado que puede crear casi cualquier tipo de conexión que pudiese necesitar y tiene muchas capacidades interesantes integradas.
 +
 
 +
 
 +
{{Nota|In more recent versions of Netcat, the sintaxis should be nc -l 5555 (without the -p parameter.}}
 +
 
  
 
Cosas curiosas que puede hacer:
 
Cosas curiosas que puede hacer:
Línea 5: Línea 9:
 
* Enviar un fichero entre dos máquinas:
 
* Enviar un fichero entre dos máquinas:
  
  SRV: nc -l -p 5555 > salida.txt
+
  SERVIDOR: $ nc -l -p 5555 > salida.txt
  CLT: nc remote.host 5555 -q 0 < entrada.txt
+
  CLIENTE: $ nc remote.host 5555 -q 0 < entrada.txt
  
 
* Enviar un fichero comprimido entre dos máquinas:
 
* Enviar un fichero comprimido entre dos máquinas:
  
  SRV: nc -l -p 5555 | gunzip > salida.txt
+
  SERVIDOR: $ nc -l -p 5555 | gunzip > salida.txt
  CLT: cat entrada.txt | gzip | nc remote.host 5555 -q 0
+
  CLIENTE: $ cat entrada.txt | gzip | nc remote.host 5555 -q 0
 +
 
 +
== Copia de seguridad remota ==
 +
 
 +
Ya que sabemos como funciona esta herramienta, podemos ir un paso más allá y hacer un copia de seguridad remota. En la máquina servidora escribimos:
 +
 
 +
$ netcat -l -p 3333 -v > backup.tgz
 +
 
 +
Y el cliente:
 +
 
 +
$ tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333
 +
 
 +
Para hacer una copia en plan bestia de todo el sistema puedes hacer:
 +
 
 +
$ tar -cjvpf - / --exclude /proc --exclude /dev --exclude /sys --exclude /tmp | netcat -q 0 remote.host 3333
 +
 
 +
Y en la parte cliente:
 +
 
 +
$ netcat -l -p 3333 -v > backup.tar.bz2
 +
 
 +
Excluiremos la información inherente creada de forma dinámica sobre la máquina, sus proceso y dispositivos. Es recomendable parar antes todos los servicios para estar seguro de tener los últimos datos. Sobre todo las bases de datos, servidores de correo y FTP. Si tenemos acceso físico a la máquina podemos ponerla en single-user mode:
 +
 
 +
$ telinit 1
 +
 
 +
Y si queremos hacerlo en plan raw, haremos una copia de toda una partición:
 +
 
 +
$ dd if=/dev/sda1 conv=noerror,sync | gzip | netcat -q 0 remote.host 3333
 +
 
 +
Y en la parte cliente:
 +
 
 +
$ nc -l -p 3333 -v > dev_sda1.gz
 +
 
 +
Para restaurarla bastaría con:
 +
 
 +
$  gzip -dc dev_sda1.gz | dd of=/dev/sda1
 +
 
 +
== Enlaces externos ==
 +
 
 +
* [http://www.linuca.org/body.phtml?nIdNoticia=276 Netcat o nc] {{es}}
 +
* [http://blog.unlugarenelmundo.es/2006/10/05/transferencia-de-ficheros-con-netcat-o-ssh/ Transferencia de ficheros con netcat o ssh] {{es}}
 +
* [http://www.linux.com/article.pl?sid=05/11/07/182200 CLI Magic: netcat] {{en}}
 +
* [http://www.sweetnam.eu/mediawiki/index.php/Using_Netcat_for_Backup Using Netcat for Backup] {{en}}
  
 
[[Categoría:Administración del sistema]]
 
[[Categoría:Administración del sistema]]

Última revisión de 09:50 13 oct 2010

Netcat (abreviado nc) es una sencilla herramienta de Unix que lee y escribe datos a través de conexiones de red mediante los protocolos TCP o UDP. Está diseñada para ser un "motor" confiable que puede usarse directamente o manejarse fácilmente mediante otros programas o guiones (scripts). Al mismo tiempo es una herramienta rica en características para la exploración y depuración de redes, dado que puede crear casi cualquier tipo de conexión que pudiese necesitar y tiene muchas capacidades interesantes integradas.


Nota clasica.png In more recent versions of Netcat, the sintaxis should be nc -l 5555 (without the -p parameter.


Cosas curiosas que puede hacer:

  • Enviar un fichero entre dos máquinas:
SERVIDOR: $ nc -l -p 5555 > salida.txt
CLIENTE: $ nc remote.host 5555 -q 0 < entrada.txt
  • Enviar un fichero comprimido entre dos máquinas:
SERVIDOR: $ nc -l -p 5555 | gunzip > salida.txt
CLIENTE: $ cat entrada.txt | gzip | nc remote.host 5555 -q 0

Copia de seguridad remota

Ya que sabemos como funciona esta herramienta, podemos ir un paso más allá y hacer un copia de seguridad remota. En la máquina servidora escribimos:

$ netcat -l -p 3333 -v > backup.tgz

Y el cliente:

$ tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333

Para hacer una copia en plan bestia de todo el sistema puedes hacer:

$ tar -cjvpf - / --exclude /proc --exclude /dev --exclude /sys --exclude /tmp | netcat -q 0 remote.host 3333

Y en la parte cliente:

$ netcat -l -p 3333 -v > backup.tar.bz2

Excluiremos la información inherente creada de forma dinámica sobre la máquina, sus proceso y dispositivos. Es recomendable parar antes todos los servicios para estar seguro de tener los últimos datos. Sobre todo las bases de datos, servidores de correo y FTP. Si tenemos acceso físico a la máquina podemos ponerla en single-user mode:

$ telinit 1

Y si queremos hacerlo en plan raw, haremos una copia de toda una partición:

$ dd if=/dev/sda1 conv=noerror,sync | gzip | netcat -q 0 remote.host 3333

Y en la parte cliente:

$ nc -l -p 3333 -v > dev_sda1.gz

Para restaurarla bastaría con:

$  gzip -dc dev_sda1.gz | dd of=/dev/sda1

Enlaces externos