Objetivos
-
- Configurar nuestro router para poder acceder al servidor de la Raspberry desde Internet.
- Activar y configurar el servicio de DDNS.
- Poner contraseña a la página para subir datos al servidor.
Material requerido.
![]() |
Una Raspberry Pi 3, aunque valen la 2 y la 1 |
![]() |
Una micro SD de al menos 4Gb y preferiblemente de 8Gb, 16 Gb o 32 Gb. |
![]() |
Una fuente de alimentación externa tipo teléfono móvil con micro USB |
![]() |
Un cable HDMI |
PORT FORWARDING
Hasta ahora sólo podemos acceder a nuestro servidor desde la red local, es decir desde cualquier dispositivo que esté conectado a la misma red que la Raspi. Si queremos acceder a ella desde el exterior a través de Internet vamos a tener que hacer algunas cosas más. Lo primero tendremos que abrir el puerto correspondiente de nuestro router para permitir acceder al mismo desde el exterior y redirigir las conexiones entrantes hacia la IP que le hemos asignado a la Raspberry. Cada router es un poco de su padre y de su madre, así que tendréis que mirar cómo se hace en el vuestro, pero como ejemplo ponemos el que utilizamos nosotros, que es un Technicolor de Euskaltel.
Para acceder a él tenemos que escribir en el navegador 192.168.0.1. Se nos abrirá una pantalla en la que nos pedirá usuario y contraseña. Tras introducirla podremos acceder a los parámetros del router. Tenemos que acceder al Port Forwarding o Reenvío de Puertos, que en nuestro caso está dentro de las opciones avanzadas. Ahí pulsamos en «Crear IPv4».
DNS DINÁMICO
Tener que acceder a nuestro servidor utilizando la IP no es lo más adecuado, sobre todo si tenemos en cuenta que cada vez que nuestro router pierda la conexión, por ejemplo al reiniciarlo, nuestra IP pública puede cambiar, ya que nuestro proveedor de internet nis asigna una diferente cada vez que nos conectamos. Para que esto no ocurra utilizaremos lo que se llama DDNS o DNS Dinámico. Esta función nos permite asociar el nombre de un dominio a nuestra IP.
Hay varias páginas que nos permiten tener un dominio personalizado aún cuando teniendo una IP dinámica. En nuestro caso hemos usado www.noip.com, que aunque tiene servicios de pago, también ofrece gratuitos con ciertas limitaciones. Para lo que nosotros la vamos a usar, la única molestia será que expira cada 30 días y tendremos que entrar a renovarlo unos días antes.
No tenéis más que registraros en ella o en cualquier otra y seguir las indicaciones. Y ahora probad a escribir la dirección en el navegador en vez de la IP que hemos estado usando. Deberíais poder acceder a las páginas que hemos creado.

Ahora nos queda conseguir que si nuestra IP pública cambia, el dominio que hemos registrado apunte hacia la nueva IP que se nos asigne. Para ello tenemos dos opciones, entrar en la configuración del router o instalar una aplicación en la Raspberry llamada ddclient que está disponible en el repositorio de Raspbian.
Nos guiará un asistente durante la instalación.Cuando nos pregunte si queremos ejecutar el cliente cuando establezca una conexión PPP le diremos que no, y a continuación que sí lo queremos ejecutar como daemon.

En la siguiente pantalla nos pedirá el proveedor de DNS dinámico, pulsaremos «Otro» y pondremos el sitio en el que lo hayamos hecho, por ejemplo «www.noip.com».

Entonces nos preguntará por el protocolo y escogeremos «dynds2».

A continuación no preguntará por el interfaz de red, si la tenemos con cable de ethernet pondremos «eth0» y si lo tenemos por WiFi «wlan0».

Y ya por últimos nos pedirá el nombre del dominio que hemos creado.

Una vez terminado reiniciamos la Raspi. Y si en algún momento necesitáis reconfigurarlo, podéis hacerlo con la instrucción:
sudo dpkg-reconfigure ddclient
AÑADIR UN POCO DE SEGURIDAD A LA PÁGINA PARA SUBIR DATOS
Ahora que cualquiera puede entrar en nuestro servidor, tenemos el problema de que alguien puede conectarse sin querer (aunque es bastante difícil) a la página que creamos en su momento para subir datos y mandarnos datos que no queremos. Así que vamos a implementar una memdida de seguridad (un poco flojilla) en la que para poder enviar datos a la base de dattos tendremos que enviar también un password que hayamos predefinido anteriormente. Para ello tenemos que editar el fichero que hicimos en su momento:
Como veis le hemos puesto un password muy tonto «1234», pero vamos a comprobar como funciona. Si tratamos de acceder a la página sin él tendríamos que ver un mensaje avisándonos de que no podemos acceder a ella sin la contraseña, y por lo tanto no se enviarán los datos a la tabla de la base de datos que tenemos creada:

Así que para acceder a él tenemos que pasarle primero la contraseña, a la que hemos declarado como «pass», de la misma forma que pasamos los valores de temperatura y humedad. Ahora sí, veréis la pantalla correctamente, y si accedéis a la base de datos en PHPMyAdmin, podréis comprobar que se han subido los datos a la tabla.

Resumen de la sesión
En esta sesión hemos aprendido varias cosas importantes:
-
- Hemos configurado nuestro router para acceder al servidor de la Raspberry a través de Internet.
- Hemos configurado el servicio de DDNS.
- Hemos puesto una pequeña medida de seguridad en forma de contraseña a la página para subir datos al servidor.
Gracias por el aporte. Un slaudo.
Si tienes una red CG-NAT no funciona, tienes que llamar a la compañía y que te lo quite. Con CG-NAT puedes ver el puerto abierto de forma local pero no desde Internet.
Hola Guillermo, en mi modem de movistar es bastante sencillo. Por lo que veo por ahí, en ese modelo tienes que ir a Advanced Setup -> NAT -> Virtual Servers. Ahí tienes que especificar las reglas de los puertos abiertos haciendo click en «Add».
Hola, en mi casa tenemos un router Nucom R5000un V2 de movistar y no se como configurar los puertos de reenvío, ojala alguien pueda ayudarme.
En advanced setting esta la opción NAT que creo es donde debo entrar, ahí dentro están las opciones Virtual servers, Port triggering y DMZ host.
Hola Nathalie, yo usaría un Arduino para leer los RFID, porque con l Raspberry nunca he probado.
hola que tal necesito un poco de ayuda estoy nueva en esto de raspberry sera que se puede utilizar como servidor web el raspberry y al mismo tiempo leer los datos de una tarjeta RFID que seria un control de acceso ?
Estupendo! Un saludo.
Ya lo conseguí con la función GET. Muchas gracias. Aunque estoy por ver la limitación que tiene a la hora de pasar datos, con tres me iba bien, pero al meter un cuarto estoy teniendo problemas.
Un saludo.
Hola Alvar, sí debería ser igual. Tenemos pendiente ese tutorial. Un saludo.
Una maravilla de tutoriales, mi mas sincera enhorabuena.
A ver si me pueden ayudar. si ingreso , funciona las mil maravillas, ¿pero como podría pasar datos a esa dirección desde un arduino con shield ethernet?, ¿con client.print(«192.x.x.x/dht11.php?Temperatura=20&Humedad=50»); funcionaría?
Solucionado: Nuevo Modem-Router al cambiar a fibra óptica 😉
Tengo la misma dificultad con mi router Jazztel: al intentar acceder dentro de mi red a la IP Pública, salta a la página de configuración del router. Desde fuera de mi red entra sin problema en el servidor web Raspberry, por ejemplo, usando el teléfono desconectando WiFi. Por lo que he leído, tiene que ver con activar la configuración «IP NAT Loopback» que mi router Comtrend AR-5313u ni tiene.
Gracias por las molestias y el tutorial. Me surge una pregunta: si también en este caso hace falta un servidor de Internet, ¿no se sigue dependiendo de terceros?
Correcto. No logré entrar por local de ninguna forma, así que desactivé la wifi del teléfono, probé por 3G y tachán! Estaba a punto de volverme loco…
Aún así, configuré apache para que saliera por el puerto 8080 y luego redireccioné a través del router.
Saludos y gracias por responder!
Gracias por el aporte.
Saludos…. Como siempre, muy bueno.
Hace unos días hice un tutorial para crear nuestro propio servicio tipo no-ip, y así no dependemos de terceros.
Si alguno le interesa chujalt.com/2/Hilo-Aporte-Saber-nuestra-IP-publica-Servicio-tipo-no-ip-o-DynDNS
Saludos
Hola Gerard, por lo que leo por ahí, los routers de Jazztel no dejan entrar por ip pública desde un ordenador en red local. Prueba a ver desde un ordenador externo y nos dices. Un saludo.
Saludos y felicidades por los tutoriales, que son fantásticos.
No consigo redireccionar el puerto hacia la raspi. Sigo los pasos pero cuando me conecto a mi ip pública o a la dirección de no-ip me muestra la web de configuración de mi router… Supongo que este esta ocupando el puerto 80.
Como puedo solucionarlo? Mi router es un ZTE H218N.
Gracias!!