Communication à distance avec le serveur domestique

8

Je fais du micro-serveur à domicile (basé sur Raspberry Pi). Il a Internet et fonctionne 24/7. Le serveur fait un peu de domotique, de surveillance et de contrôle. Il n'a pas d'adresse IP publique statique (il est attribué via DHCP).

J'ai besoin d'un moyen de communiquer à distance avec le serveur: je veux envoyer de courtes commandes au serveur et parfois obtenir des réponses.

Quelle est la meilleure façon de procéder? Je connais quelques façons:

  1. Courriel . Je peux enregistrer une adresse e-mail avec un accès pop3 / smtp pour le serveur et l'utiliser pour communiquer. Mais il y a un problème: ce n'est pas instantané, il est donc difficile de faire des transactions instantanées, des rapports critiques pour moi, etc.

  2. SMS . Je peux connecter un ancien téléphone GSM ou module GSM à mon serveur et utiliser SMS pour la communication. C'est instantané et semble être OK, mais je n'ai jamais travaillé avec le GSM et je ne connais pas tous les problèmes possibles.

Aidez-moi avec un conseil, s'il vous plaît. Si vous avez déjà résolu le problème pour votre propre serveur, expliquez-moi s'il vous plaît son mode de communication.


la source
Courriel, messagerie instantanée, Twitter, facebook, Telnet, SSH, HTTP, serveur LAMP (Linux, Apache, MySQL, PHP ou Perl), le tout à peu près instantané. Le courrier électronique est souvent de la même minute, surtout si vous utilisez la même société de messagerie (comme par exemple gmail pour l'envoi et la réception). Mais ce n'est pas une question d'électronique. Voir plutôt Superuser ou Raspberry PI Stack Exchanges.
cde
7
Vous pouvez vous abonner à un service DNS dynamique (il y en a beaucoup, certains sont gratuits) - vous exécutez une application sur votre serveur qui met à jour le service DNS lorsque l'adresse IP externe du routeur change. De cette façon, vous pouvez toujours contacter votre Raspberry pi interne en utilisant un nom fixe (par exemple RossPi.dynamicdns.example.com). Vous devrez également configurer la redirection de port (ou équivalent) sur votre routeur pour permettre aux connexions entrantes d'être routées vers le raspberry pi. Ensuite, vous pouvez utiliser des sockets Web (HTTP) ou TCP, etc., etc.
RedGrittyBrick

Réponses:

3

Créez un compte sur TOUT site Web de serveur DNS dynamique. J'ai utilisé dnsdynamic.com comme exemple pour plus de simplicité

Ouvrez un terminal sur votre Raspberry Pi et installez le service de mise à jour:

sudo apt-get install ddclient

Vous pouvez saisir les paramètres pendant l'assistant ou simplement appuyer sur Entrée. Nous éditerons le fichier de configuration de toute façon.

Editez le fichier de configuration /etc/ddclient.conf et remplacez tout ce qu'il contient par ceci:

#
# 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]

Remplacez [CONNEXION], [MOT DE PASSE] et [DOMAINE] suivants par le paramètre que vous avez utilisé.

Enregistrez les modifications apportées au fichier de configuration et redémarrez le Raspberry Pi.

N'oubliez pas de configurer votre routeur pour transférer les ports nécessaires à votre Raspberry Pi.

  1. 21 - FTP
  2. 80 - Serveur Web
  3. 443 - SSL

Piotr Kula
la source
OP ne demande pas comment communiquer Raspberry Pi sur WAN. Cette réponse met l'accent sur l'activation de la communication via WAN. OP veut juste communiquer à distance avec son Raspberry Pi (il pourrait être dans le même réseau mais physiquement distant).
Chetan Bhargava
Oui. Je vois ce que tu veux dire. Mais sûrement les premières réponses (après avoir cherché sur le Web) lui feraient réaliser qu'il peut utiliser SSH s'il est à l'intérieur du réseau. Donc, mon hypothèse était qu'il devait le placer dans un endroit éloigné (puisqu'il a stipulé qu'il était connecté à Internet 24/7) et communiquer avec lui "à distance", et non "local" en réseau. Malheureusement, il n'y a aucune rétroaction de l'OP, donc ce n'est pas clair.
Piotr Kula
0

Une autre option consiste à héberger votre front-end sur un serveur Web Internet (et / ou des applications sur vos appareils mobiles) et à utiliser une file d'attente de messages pour communiquer entre eux.

Les files d'attente de messages permettent la redondance et l'abstraction entre le (s) front-end (s) et back-end (s)

MQTT est conçu pour la tâche et est gratuit

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

mal au dos
la source