Comunicação remota com o servidor doméstico

8

Eu faço micro-servidor doméstico (baseado no Raspberry Pi). Tem Internet e funciona 24/7. O servidor faz alguma automação residencial, monitoramento e controle. Não possui um endereço IP público estático (é atribuído via DHCP).

Preciso de uma maneira de me comunicar remotamente com o servidor: quero enviar comandos curtos para o servidor e, às vezes, obter respostas.

Qual é a melhor maneira de fazer isso? Eu sei algumas maneiras:

  1. Email . Posso registrar um endereço de email com acesso pop3 / smtp para o servidor e usá-lo para comunicação. Mas há um problema: não é instantâneo, por isso é difícil fazer transações instantâneas, relatórios críticos para mim etc.

  2. SMS . Posso conectar o telefone GSM ou o módulo GSM antigo ao meu servidor e usar o SMS para comunicação. É instantâneo e parece estar bem, mas nunca trabalhei com GSM e não conheço todos os problemas possíveis.

Ajude-me com conselhos, por favor. Se você já resolveu o problema para o seu próprio servidor, explique-me por favor, o caminho da comunicação.


fonte
Email, IM, Twitter, facebook, Telnet, SSH, HTTP, servidor LAMP (Linux, Apache, MySQL, PHP ou Perl), todos instantaneamente. O e-mail geralmente é no mesmo minuto, especialmente se você usa a mesma empresa de e-mail (como o gmail, tanto para o envio quanto para o recebimento). Mas isso não é uma questão de eletrônica. Consulte Superusuário ou o Raspberry PI Stack Exchanges.
Cde
7
Você pode assinar um serviço de DNS dinâmico (existem muitos, alguns são gratuitos) - você executa um aplicativo no servidor que atualiza o serviço DNS quando o endereço IP externo do roteador é alterado. Dessa forma, você sempre pode entrar em contato com o seu Raspberry pi interno usando um nome fixo (por exemplo, RossPi.dynamicdns.example.com). Você também precisará configurar o encaminhamento de porta (ou equivalente) no seu roteador para permitir que as conexões recebidas sejam roteadas para o raspberry pi. Então você pode usar web (HTTP) ou TCP soquetes etc etc.
RedGrittyBrick

Respostas:

3

Crie uma conta em QUALQUER site do servidor DNS dinâmico. Eu usei o dnsdynamic.com como exemplo de simplicidade

Abra um terminal no seu Raspberry Pi e instale o serviço de atualização:

sudo apt-get install ddclient

Você pode digitar as configurações durante o assistente ou apenas pressionar enter. Vamos editar o arquivo de configuração de qualquer maneira.

Edite o arquivo de configuração /etc/ddclient.conf e substitua tudo nele por:

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

Substitua os seguintes [LOGIN], [PASSWORD] e [DOMAIN] pela configuração usada.

Salve as alterações feitas no arquivo de configuração e reinicie o Raspberry Pi.

Lembre-se de configurar seu roteador para encaminhar as portas necessárias para o seu Raspberry Pi.

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

Piotr Kula
fonte
O OP não pergunta como comunicar raspberry pi por wan. Esta resposta enfatiza a ativação da comunicação via WAN. O OP só quer se comunicar com o seu raspberry pi remotamente (ele pode estar na mesma rede, mas fisicamente remoto).
Chetan Bhargava
Sim. Eu entendo o seu ponto. Mas certamente as primeiras respostas (depois de pesquisar na web) o farão perceber que ele pode usar o SSH se estiver dentro da rede. Então, suponho que ele precisa colocá-lo em um local remoto (já que ele estipula que ele está conectado à Internet 24 horas por dia, 7 dias por semana) e se comunicar com ele "remotamente", não com a área "local" em rede. Infelizmente, não há feedback do OP, portanto não está claro.
Piotr Kula
0

Outra opção é ter seu front-end hospedado em um servidor da Internet (e / ou aplicativos em seus dispositivos móveis) e usar uma fila de mensagens para se comunicar entre todos.

As filas de mensagens permitem redundância e abstração entre os front-end e back-end

O MQTT foi projetado para a tarefa e é gratuito

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

dor nas costas
fonte