Comunicazione remota con il server di casa


8

Realizzo micro-server di casa (basato su Raspberry Pi). Ha Internet e funziona 24/7. Il server esegue automazione domestica, monitoraggio e controllo. Non ha un indirizzo IP pubblico statico (è assegnato tramite DHCP).

Ho bisogno di un modo per comunicare in remoto con il server: voglio inviare brevi comandi al server e talvolta ottenere risposte.

Quali sono i modi migliori per farlo? Conosco alcuni modi:

  1. E-mail . Posso registrare un indirizzo e-mail con accesso pop3 / smtp per il server e usarlo per la comunicazione. Ma c'è un problema: non è istantaneo, quindi è difficile effettuare transazioni istantanee, report critici per me, ecc.

  2. SMS . Posso collegare il vecchio telefono GSM o il modulo GSM al mio server e utilizzare SMS per la comunicazione. È istantaneo e sembra essere OK, ma non ho mai lavorato con GSM e non conosco tutti i possibili problemi.

Aiutami con un consiglio, per favore. Se hai già risolto il problema per il tuo server, spiegami per favore il suo modo di comunicare.


Email, messaggistica istantanea, Twitter, Facebook, Telnet, SSH, HTTP, server LAMP (Linux, Apache, MySQL, PHP o Perl), praticamente tutti istantanei. La posta elettronica è spesso dello stesso minuto, specialmente se si utilizza la stessa società di posta elettronica (come dire gmail sia per l'invio che per la ricezione). Ma questa non è una domanda di elettronica. Vedi invece Superuser o Raspberry PI Stack Exchange.
cde

7
Puoi abbonarti a un servizio DNS dinamico (ce ne sono molti, alcuni sono gratuiti): esegui un'app sul tuo server che aggiorna il servizio DNS quando cambia l'indirizzo IP esterno del router. In questo modo puoi sempre contattare il tuo Raspberry pi interno usando un nome fisso (ad es. RossPi.dynamicdns.example.com). Dovrai anche impostare il port forwarding (o equivalente) sul tuo router per consentire il routing delle connessioni in entrata al raspberry pi. Quindi è possibile utilizzare socket Web (HTTP) o TCP ecc.
Ecc

Risposte:


3

Crea un account su QUALSIASI sito Web del server DNS dinamico. Ho usato dnsdynamic.com come esempio per semplicità

Apri un terminale sul tuo Raspberry Pi e installa il servizio di aggiornamento:

sudo apt-get install ddclient

È possibile digitare le impostazioni durante la procedura guidata o premere semplicemente Invio. Modificheremo il file di configurazione in qualsiasi modo.

Modifica il file di configurazione /etc/ddclient.conf e sostituisci tutto con questo:

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

Sostituire i seguenti [LOGIN], [PASSWORD] e [DOMAIN] con le impostazioni utilizzate.

Salvare le modifiche apportate al file di configurazione e riavviare Raspberry Pi.

Ricorda di configurare il router per inoltrare le porte necessarie a Raspberry Pi.

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


OP non chiede come comunicare raspberry pi su wan. Questa risposta sottolinea l'abilitazione della comunicazione tramite WAN. OP vuole solo comunicare con il suo raspberry pi da remoto (potrebbe essere all'interno della stessa rete ma fisicamente remoto).
Chetan Bhargava,

Sì. Vedo il tuo punto. Ma sicuramente le prime risposte (dopo aver cercato sul web) gli farebbero capire che può usare SSH se all'interno della rete. Quindi la mia ipotesi era che doveva metterlo in una posizione remota (dal momento che ne aveva stabilito la connessione a Internet 24 ore su 24, 7 giorni su 7) e comunicare con esso "in remoto", non in modo "locale" in rete. Sfortunatamente non ci sono feedback dall'OP, quindi non è chiaro.
Piotr Kula,

0

Un'altra opzione è avere il tuo front-end ospitato su un server web Internet (e / o app sui tuoi dispositivi mobili) e utilizzare una coda di messaggi per comunicare tra di loro.

Le code dei messaggi consentono ridondanza e astrazione tra front-end e back-end

MQTT è progettato per l'attività ed è gratuito

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.