21 de jul. 2009

Instalar y configurar ddclient en Ubuntu


A todos los que tenemos una IP dinamica nos gustaría poseer un dominio fijo y personalizado que redireccionase a nuestra IP con el fin de montarnos un servidor FTP, publicar una página web o poder acceder mediante el protocolo SSH a nuestro sistema desde una máquina remota. Esto ultimo se complica al tener una IP dinamica ya que siempre tenemos que estar a expensas de saber la nueva IP para hacer la conexión.

Pues en www.dyndns.com (y en mas sitios) nos permiten tener un dominio personalizado aun teniendo una IP dinámica. Una vez creado nuestra cuenta y nuestro dominio (en esta entrada explico como hacerlo) procederemos a instalarlos una aplicación denominada ddclient, que se encargará de actualizar nuestra IP en los servicios de dyndns.

1)Tener a la mano los datos de nuestra cuenta DynDNS que son, como ejemplo:

Host: ejemplo.homelinux.com
Usuario: mario
Password: 12345

2) En una Terminal (Aplicaciones -> Accesorios -> Terminal) escribimos lo siguiente para averiguar que conexiones a internet tenemos:

ifconfig

3) Y nos aparecera un listado como este, donde eth0 corresponde a una conexion alambrica y wlan0 a una de tipo inalambrica. Para este caso utilizaremos la alambrica por tanto recordaremos que se llama eth0:

eth0      Link encap:Ethernet  direcciónHW 00:0D:61:6B:1D:3A
inet addr:10.250.94.130 Difusión:255.255.255.255 Mask:255.255.248.0
inet6 addr: fe80::20d:61ff:fe6b:1d3a/64 Scope:Link
UP DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Metric:1
RX packets:37780 errors:0 dropped:0 overruns:0 frame:0
TX packets:3718 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:4340525 (4.1 MB) TX bytes:1261487 (1.2 MB)
Interrupt:17 Base address:0xe400

wlan0 Link encap:Ethernet direcciónHW 00:08:A1:B6:39:07
UP DIFUSIÓN MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

4) Instalamos la aplicacion, en una Terminal escribimos lo siguiente y respondemos SI a todas las preguntas:

sudo apt-get install ddclient

5) Entonces en el proceso de instalacion nos apareceran las siguientes pantallas, que rellenaremos con los campos mostrados en las imagenes:

Pantalla ddclient 1

Pantalla ddclient 2

Pantalla ddclient 3

Pantalla ddclient 5

Pantalla ddclient 6

6) En este momento se habra instalado el ddclient, pero nos falta terminar de configurarlo, asi que escribimos de nuevo en la Terminal:

sudo dpkg-reconfigure ddclient

7) Y apareceran las pantalla anteriors de nuevo, ya con los campos rellenos con los datos que insertamos, asi que ha excepcion del password que hay que escribirlo de nuevo le damos Enter a todo, hasta llegar a la siguiente pantalla, que nos pregunta si deseamos que el ddclient se ejecute cuando nos conectamos a internet, le diremos que SI.

Pantalla DynDNS 10

8) Luego nos preguntara si queremos que se ejecute como “daemon” es decir que se ejecute cuando inicies la sesion en la que estas haciendo la configuracion de ddclient, le decimos que SI. Si te intersa que ddclient se ejecute solo con cargar el S.O. sin iniciar sesion, mas abajo lo explico con detalle.

Pantalla ddclient 11

9) Y para finalizar nos pregunta cada cuanto tiempo queremos que verifique si nuestra IP dinamica no ha cambiado, de dejamos el valor por default, 300 segundos.

Pantalla ddclient 13

En este instante tenemos completamente configurado el ddclient, solo nos queda una cosa mas por hacer, por cuestiones que no me quedan muy claras y que al parecer es un problema de DynDNS que es cambiarle el nombre a la maquina y ponerle el que elegimos para DynDNS. En este caso el nombre elegido fue ejemplo. Asi que nos vamos a Sistema -> Administracion -> Red.

1) Sistema -> Administracion -> Red, y escribimos el password de adminstrador.

2) En la pestaña General, escribimos en nombre del equipo el nombre del Host que elgimos en DynDNS, en este caso ejemplo. como se ve en la figura.

Pantalla ddclient

3) Seleccionamos Cerrar y Salvar los cambios.

4) Y reiniciamos el sistema completo.

Listo ha quedado todo completamente configurado.

Nota: Al parecer con todo lo anterior en algunas ocasiones el ddclient no queda bien configurado, de modo que es necesario editar a mano el archivo ddclient.conf, pero afortunadamente DynDNS tiene una herramienta para esto.

1) Entra a la pagina de DynDNS y entra con tu cuenta de usuario, despues entra al link:

https://www.dyndns.com/support/tools/clientconfig.html

Ahi selecciona en las casillas de la derecha los dominios que vallas a configurar, y abajo en la casilla rellena la de ddclient. Dar clik en Generate.

2) Te aparecera un texto en la pag web como el siguiente:

## ddclient configuration file
daemon=600 # check every 600 seconds
syslog=yes # log update msgs to syslog
mail-failure=##mail##@gmail.com # Mail failed updates to user
pid=/var/run/ddclient.pid # record PID in file.

## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'

## DynDNS username and password here
login=##NAME##
password=##YOUR PASSWORD##

## Default options
protocol=dyndns2
server=members.dyndns.org

## Dynamic DNS hosts
ejemplo.homelinux.com

3) Ahora escribimos en la Terminal

sudo gedit /etc/ddclient.conf &

4) Borramos todo lo que hay ahi y pegamos el texto anterior, y donde dice ##YOUR PASSWORD## lo reemplazamos con nuestro password.

5) Cerramos y gardamos el editor de textos. Reinicia la PC y entra a la pagina de DynDNS para verificar que nuestra IP es correcta.

Nota aparte, si deseas que ddclient se ejecute con tan solo prender tu computadora, sin necesidad de iniciar la sesion, entonces es necesario que hagas ESTO que explico en otra entrada.

Si deseas conocer el estado del ddclient (saber si se esta ejecutando, reiniciarlo u otro) entonces escribe en una Terminal cualquiera de estas opciones:

sudo /etc/init.d/ddclient start ——————- iniciar ddclient
sudo /etc/init.d/ddclient stop ——————– detener ddclient
sudo /etc/init.d/ddclient restart —————- reiniciar ddclient
sudo /etc/init.d/ddclient status —————– estado del ddclient
sudo /etc/init.d/ddclient force-reload —– forzar la ejecucion del ddclient

Viva el software libre!!!!