Conexión remota a Raspberry Pi

Feliz domingo a todos! puttyy En este post voy a dar respuesta a una pregunta que puede que se os haya pasado por la cabeza… ¿Es necesario tener todos los accesorios que hemos comentado para poder trabajar con Raspberry?    La respuesta es no, únicamente necesitamos tenerla conectada a internet, tener un SO en la tarjeta SD y darla vida con un alimentador, la pantalla, el ratón y el teclado, son totalmente secundarios (pero está genial poder tener todos estos periféricos dedicados a la Raspberry..) A continuación os voy a explicar cómo acceder de manera remota a nuestro PI.

Lo primero es descargar el programa PUTTY en nuestro ordenador (enlace putty).

¿Qué es PUTTY? Es un cliente de SSH que nos permitirá acceder a la consola de Raspberry de manera remota, desde otro ordenador.

¿Qué es SSH? Secure Shell, es el nombre de un protocolo que sirve para acceder a máquinas remotas a través de una red.

Una vez que tenemos putty instalado nos aparecerá una ventana como la siguiente, donde tendremos que marcar que queremos conectarnos por SSH, y tendremos que decirle a que dirección nos queremos conectar.

Lo más fácil es asignar una dirección IP estática a nuestra raspberry, para que al conectarla y desconectarla de la red, el router no la dote de IP’s diferentes. Hay diversas maneras de hacerlo, para mí la más fácil es entrar en el router de casa, normalmente 192.168.1.1, entrar en Local Area Network (LAN) Setup y ahí asignar a la MAC de nuestra raspberry, la dirección IP que queramos.

dhcp

¿Qué es la MAC? La dirección MAC (Media Access Control) es un identificador de 48 bits que corresponde de forma única a una tarjeta o dispositivo conectado a internet. Se conoce también como dirección física, y es única para cada dispositivo.

¿Cómo saber la MAC de nuestra Raspi? Lo más sencillo es ejecutar el siguiente comando en la consola de Raspbian:

Ifconfig

El conjunto de letras y números que aparecen en HWaddr (hardware address) es la MAC.

Tras introducir , después de todo este royo que os he contado de IP’s, la IP en PUTTY y el puerto al que nos vamos a conectar (para SSH el 22).

¿Qué es el puerto?

El puerto es una numeración que se asigna a las conexiones, es decir, que si te quieres conectar por medio de una SSH tienes que utilizar el puerto 22, si quieres navegar por internet, tienes que usar el puerto 80, y así con todos. Se puede hacer analogía con el significado de puerto marítimo, donde para navegar por un océano (internet), puedes utilizar diferentes embarcaciones (conexiones) que parten y llegan a unos determinados puertos, característicos de esa embarcación. Si quieres navegar con un transatlántico, no podrás salir del puerto de una barca, cada puerto es específico de cada conexión. (Vaya paranoia, prosigo :P)

Un puerto puede estar:

Abierto: Acepta conexiones. Hay una aplicación escuchando en este puerto. Esto no quiere decir que se tenga acceso a la aplicación, sólo que hay posibilidad de conectarse.

Cerrado: Se rechaza la conexión. Probablemente no hay aplicación escuchando en este puerto, o no se permite el acceso por alguna razón.

Bloqueado o Sigiloso: No hay respuesta. Este es el estado ideal para un cliente en Internet, de esta forma ni siquiera se sabe si el ordenador está conectado. Normalmente esto se debe a un cortafuegos, o a que el ordenador está apagado.

Como ejemplos de puertos se pueden citar los siguientes:

21 (TCP/UDP) FTP  22 (TCP/UDP) SSH  23 (TCP/UDP) Telnet  25 (TCP/UDP) SMTP  66 (TCP/UDP) Oracle SQLNet  79 (TCP/UDP) Finger  80 (TCP/UDP) HTTP – Web 

Si no os lo creéis podéis probar a entrar a la dirección de internet que más os guste y poner al final :80 , por ejemplo:

www.google.es:80

El sistema os lleva a google directamente navegando por la Web.

Bueno, el caso es que ya tendríamos configurada la conexión SSH, ahora solamente tendríamos que dar a conectar (la configuración la puedes guardar, como se ve en la imagen yo la he guardado como RASPBIAN para no tener que hacer todo esto cada vez).

putty

Y ya tenemos acceso a nuestra raspberry Pi desde otro ordenador de la Red local!!

¿Problemas? Si, que solo tenemos acceso a la consola, sin una configuración a mayores todos los entornos gráficos quedan restringidos. Pero ahora os voy a explicar cómo poder tener acceso total a la Raspberry, como si tuviéramos una pantalla acoplada a ella.

xming

Para esto existe un programa llamado Xming, que nos ayudará a poder ver todos los entornos gráficos y los programas que se ejecutan en la PI sin problema.

Descargamos Xming en nuestro ordenador (Enlace Xming), instalamos y entramos en su configuración, podemos poner el aspecto qu queramos a la pantalla que se abrirá conectándose al interfaz gráfico de la Raspi, yo lo tengo en múltiple, y en display number, el 0, el local.

xming1

Para que esto se haga efectivo en la conexión SSH hay que modificar propiedades de la conexión Raspbian que habíamos creado, entramos en PUTTY y en SSH -> X11 (esto significa X Windows system, X es el interfaz gráfico de UNIX, por esto todo el tema de hacer STARTX para entrar en el escritorio de Raspbian que conté en el post anterior).

En X11 activamos Enable X11 forwarding y escribimos en X display location el que habíamos puesto en la configuración, es decir, localhost:0.

Guardamos y ya tenemos todo ok para conectarnos en remoto a Raspberry y poder ejecutar todos los programas que queramos con un resultado como el que vemos a continuación ( ejecutando el programa scratch, por ejemplo)

 ejemplo

Muchas gracias por leer!! Nos vemos la semana que viene!!

3 thoughts on “Conexión remota a Raspberry Pi

  1. Cama

    Vamos a forzar un poquito la máquina, a ver si no te parece mal.
    ¿Podrías explicar para que sirve cada puerto? Al menos los que has nombrado como ejemplos. Es algo completamente nuevo, bueno, el SSH sí lo había utilizado, pero ni la más remota idea del resto.
    ¿Qué significa el acrónimo (siglas) TCP/UDP?
    ¿Podrías programar uno de esos programas (valga la redundancia) de los que hablas? ¿Nos lo explicas en otro post?

    grande Fof

     
    Reply
    1. josehervas

      Perdona Cama…he tenido una semana…
      Vamos a ver:
      21 FTP (File transfer protocol): Este puerto es el necesario para transferir archivos en una arquitectura cliente-servidor, es decir, un servidor que sirve de contenedor de información, y un cliente que coge o vuelca información en el servidor.

      22 SSH (Secure shell client): Lo que hemos visto en el post
      23 Telnet (TELecommunication NETwork): Con esto se accede a una máquina para manejarla remotamente, entrando en una interfaz de consola, nunca gráfica. Como ejemplo más claro..el router de tu casa es una máquina con la que seguramente te puedas comunicar por telnet. Simplemente ingresa desde PUTTY (en modo telnet) 192.168.1.1 (la dirección IP de tu router) y ya entrarás en el. También lo puedes hacer desde el símbolo del sistema de Windows haciendo telnet 192.168.1.1 23 (si no te deja no tienes activado el cliente de telnet…actívalo en programas y características )

      25 SMTP (Simple Mail Transfer Protocol) Es un protocolo de envío y recepción de e-mails muy simple.

      66 Oracle SQLNet Puerto por el cual se comunican las bases de datos SQL (de esto hay mucho que hablar…cuando haga un programa que conecte a una SQL (Structured Query Language) las explico más a fondo)

      79 Finger Es un protocolo que proporciona información de los usuarios de una máquina.
      80 HTTP – Web No hay mucho más que decir.

      Como ejemplo adicional, cuando utilizamos emule necesitamos tener abiertos los puertos TCP 61473 y UDP 59710 , que son por lo que emule se comunica.

      TCP/UDP (Transmission Control Protocol / User Datagram Protocol)
      Son dos protocolos de comunicación entre máquinas, el primero está orientado a conexión entre ellas y el segundo no.
      Con TCP la maquina A envía a la máquina B y la B le responde que ha recibido. En el UDP no.

      Para programar uno de los programas de los que hablo, hace falta muuuuuucho tiempo y una temática clara jajaja, ahora estoy aprendiendo a programar en Python, para crear programas que se ejecuten en la Raspberry, para mostrar datos, o controlar sensores. Esto si que lo explico en otro post, que es mucha tela. 😛

      Espero haberte aclarado las dudas!!!

       
      Reply
      1. Cama

        Bien bien, me has aclarado, pero también me salen más dudas.
        ¡Me causáis envidia los que entendéis este mundo!
        Venga, piscinazo, a ver si lo que digo no es una chorrada inmensa. Para programar necesitas… un programa o una base, no se como decirlo (pido disculpas por mi ignorancia). Entonces ¿cómo se crea el 1er programa para programar? Después, con uno de esos programas diseñados para trabajar con cada puerto se obtienen diferentes propósitos tales como navegar por internet, ¿no?
        Lo más sensato será ver oír y callar. Seguiré leyendo a ver si aprendo. Sigue dándole duro FOsfórico que aquí tienes un incondicional.

         
        Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>