Comunicación remota con el servidor doméstico

8

Hago un micro servidor doméstico (basado en Raspberry Pi). Cuenta con Internet y funciona las 24 horas, los 7 días de la semana. El servidor realiza algunos domótica, monitoreo y control. No tiene una dirección IP pública estática (se asigna a través de DHCP).

Necesito una forma de comunicarme remotamente con el servidor: quiero enviar comandos cortos al servidor y, a veces, recibir respuestas.

¿Cuáles son las mejores formas de hacerlo? Sé algunas maneras:

  1. Email . Puedo registrar una dirección de correo electrónico con acceso pop3 / smtp para el servidor y usarla para la comunicación. Pero hay un problema: no es instantáneo, por lo que es difícil realizar transacciones instantáneas, informes críticos para mí, etc.

  2. SMS . Puedo conectar mi viejo teléfono GSM o módulo GSM a mi servidor y usar SMS para comunicarme. Es instantáneo y parece estar bien, pero nunca trabajé con GSM y no conozco todos los posibles problemas.

Ayúdame con un consejo, por favor. Si ya resolvió el problema de su propio servidor, explíqueme por favor su forma de comunicación.


fuente
Servidor de correo electrónico, mensajería instantánea, Twitter, Facebook, Telnet, SSH, HTTP, LAMP (Linux, Apache, MySQL, PHP o Perl), todo bastante instantáneo. El correo electrónico suele ser el mismo minuto, especialmente si usa la misma compañía de correo electrónico (como decir gmail tanto para el envío como para la recepción). Pero esta no es una pregunta electrónica. Consulte Superusuario o Raspberry PI Stack Exchanges en su lugar.
cde
77
Puede suscribirse a un servicio DNS dinámico (hay muchos, algunos son gratuitos): ejecuta una aplicación en su servidor que actualiza el servicio DNS cuando cambia la dirección IP externa del enrutador. De esa manera, siempre puede comunicarse con su Raspberry pi interna utilizando un nombre fijo (por ejemplo, RossPi.dynamicdns.example.com). También necesitará configurar el reenvío de puertos (o equivalente) en su enrutador para permitir que las conexiones entrantes se enruten a la frambuesa pi. Entonces puede usar sockets web (HTTP) o TCP, etc., etc.
RedGrittyBrick

Respuestas:

3

Cree una cuenta en CUALQUIER sitio web del servidor DNS dinámico. Usé dnsdynamic.com como ejemplo por simplicidad

Abra una terminal en su Raspberry Pi e instale el servicio de actualización:

sudo apt-get install ddclient

Puede escribir la configuración durante el asistente o simplemente presionar enter. Editaremos el archivo de configuración de cualquier manera.

Edite el archivo de configuración /etc/ddclient.conf y reemplace todo lo que contenga con esto:

#
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
daemon=60                          # check every 60 seconds
syslog=yes                         # log update msgs to syslog
mail=root                          # mail all msgs to root
mail-failure=root                  # mail failed update msgs to root
pid=/var/run/ddclient.pid          # record PID in file.
ssl=yes                            # use ssl-support.
use=web, web=myip.dnsdynamic.com   # get ip from server.
server=www.dnsdynamic.org          # default server
login=[LOGIN]                      # your login
password=[PASSWORD]                # your password
server=www.dnsdynamic.org,         \
protocol=dyndns2                   \
[DOMAIN]

Reemplace los siguientes [INICIAR SESIÓN], [CONTRASEÑA] y [DOMINIO] con la configuración que utilizó.

Guarde los cambios realizados en el archivo de configuración y reinicie Raspberry Pi.

Recuerde configurar su enrutador para reenviar los puertos necesarios a su Raspberry Pi.

  1. 21 - FTP
  2. 80 - Servidor web
  3. 443 - SSL

Piotr Kula
fuente
OP no pregunta cómo comunicar raspberry pi sobre wan. Esta respuesta enfatiza en habilitar la comunicación a través de WAN. OP solo quiere comunicarse con su raspberry pi de forma remota (podría estar dentro de la misma red pero físicamente remota).
Chetan Bhargava
Sí. Entiendo tu argumento. Pero seguramente las primeras respuestas (después de buscar en la web) le harían darse cuenta de que puede usar SSH si está dentro de la red. Así que supongo que necesita poner esto en una ubicación remota (ya que estipuló que está conectado a Internet las 24 horas del día, los 7 días de la semana) y comunicarse con él "remotamente", no en redes de área "local". Desafortunadamente no hay comentarios del OP, por lo que no está claro.
Piotr Kula
0

Otra opción es tener su front-end alojado en un servidor web de Internet (y / o aplicaciones en sus dispositivos móviles) y usar una cola de mensajes para comunicarse entre ellos.

Las colas de mensajes permiten redundancia y abstracción entre el front-end (s) y el back-end (s)

MQTT está diseñado para la tarea y es gratis

https://en.wikipedia.org/wiki/MQ_Telemetry_Transport

dolor de espalda
fuente