bclose

Abrir el servidor de la Raspberry a Internet

Acceder al servidor desde cualquier parte con Internet

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.

Vista lateral  Una Raspberry Pi 3, aunque valen la 2 y la 1

vista frontal
Una micro SD de al menos 4Gb y preferiblemente de 8Gb, 16 Gb o 32 Gb.
Vista lateral Una fuente de alimentación externa tipo teléfono móvil con micro USB
video para raspberry pi 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».

Contenido solo disponible para suscriptores. ¡Accede al contenido!

     

 

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.

dns dinámico

 

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.

Contenido solo disponible para suscriptores. ¡Accede al contenido!

     

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.

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».

proveedor ddns

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

protocolo

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».

interfaz

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

dominio

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:

Contenido solo disponible para suscriptores. ¡Accede al contenido!

     

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:

servidor raspberry

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.

servidor raspberry

 

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.

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(18) Comments

  • Avatar for Ivan Uriarte
    • Ivan Uriarte

    Gracias por el aporte. Un slaudo.

  • Avatar for Ivan Uriarte
    • Cristian

    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.

  • Avatar for Ivan Uriarte
    • Ivan Uriarte

    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».

  • Avatar for Ivan Uriarte
    • Guillermo

    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.

  • Avatar for Ivan Uriarte
    • Ivan Uriarte

    Hola Nathalie, yo usaría un Arduino para leer los RFID, porque con l Raspberry nunca he probado.

  • Avatar for Ivan Uriarte
    • Nathalie

    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 ?

  • Avatar for Ivan Uriarte
    • Ivan Uriarte

    Estupendo! Un saludo.

  • Avatar for Ivan Uriarte
    • Alvar

    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.

  • Avatar for Ivan Uriarte
    • Ivan Uriarte

    Hola Alvar, sí debería ser igual. Tenemos pendiente ese tutorial. Un saludo.

  • Avatar for Ivan Uriarte
    • Alvar

    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?

  • Avatar for Ivan Uriarte
    • Ave01

    Solucionado: Nuevo Modem-Router al cambiar a fibra óptica 😉

  • Avatar for Ivan Uriarte
    • Ave01

    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.

  • Avatar for Ivan Uriarte

    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?

  • Avatar for Ivan Uriarte
    • Gerard

    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!

  • Avatar for Ivan Uriarte
    • Ivan

    Gracias por el aporte.

  • Avatar for Ivan Uriarte
    • Chujalt

    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

  • Avatar for Ivan Uriarte
    • Ivan

    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.

  • Avatar for Ivan Uriarte
    • Gerard

    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!!

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login
Tienda y Tutoriales Arduino