Удаленная связь с домашним сервером

8

Я делаю домашний микро-сервер (на основе Raspberry Pi). Есть интернет и работает круглосуточно. На сервере делают некоторую домашнюю автоматизацию, мониторинг и контроль. У него нет статического публичного IP-адреса (он назначается через DHCP).

Мне нужен способ удаленной связи с сервером: я хочу отправлять короткие команды на сервер и иногда получать ответы.

Каков наилучший способ сделать это? Я знаю несколько способов:

  1. Электронная почта . Я могу зарегистрировать адрес электронной почты с доступом pop3 / smtp для сервера и использовать его для связи. Но есть проблема: это не мгновенно, поэтому сложно совершать мгновенные транзакции, критические отчеты для меня и т. Д.

  2. Смс . Я могу подключить старый GSM-телефон или GSM-модуль к своему серверу и использовать SMS для связи. Это мгновенно и вроде бы нормально, но я никогда не работал с GSM и не знаю всех возможных проблем.

Помогите с советом, пожалуйста. Если вы уже решили проблему для своего собственного сервера, объясните мне, пожалуйста, способ его связи.


источник
Электронная почта, IM, Twitter, Facebook, Telnet, SSH, HTTP, сервер LAMP (Linux, Apache, MySQL, PHP или Perl), все в значительной степени мгновенно. Электронная почта часто занимает одну и ту же минуту, особенно если вы используете одну и ту же почтовую компанию (например, скажем, gmail для отправки и получения). Но это не вопрос электроники. Смотрите вместо этого Superuser или Raspberry PI Stack Exchange.
СД
7
Вы можете подписаться на службу динамического DNS (их много, некоторые бесплатны) - вы запускаете приложение на своем сервере, которое обновляет службу DNS при изменении внешнего IP-адреса маршрутизатора. Таким образом, вы всегда можете связаться со своим внутренним Raspberry pi, используя фиксированное имя (например, RossPi.dynamicdns.example.com). Вам также необходимо настроить переадресацию портов (или эквивалентную) на вашем маршрутизаторе, чтобы разрешить маршрутизацию входящих подключений к raspberry pi. Затем вы можете использовать веб (HTTP) или TCP-сокеты и т. Д. И т. Д.
RedGrittyBrick,

Ответы:

3

Создайте учетную запись на ЛЮБОМ сайте динамического DNS-сервера. Я использовал dnsdynamic.com в качестве примера для простоты

Откройте терминал на вашем Raspberry Pi и установите сервис обновления:

sudo apt-get install ddclient

Вы можете ввести настройки во время работы мастера или просто нажать Enter. Мы будем редактировать файл конфигурации любым способом.

Отредактируйте файл конфигурации /etc/ddclient.conf и замените все в нем следующим:

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

Замените следующие [LOGIN], [PASSWORD] и [DOMAIN] на настройку, которую вы использовали.

Сохраните изменения, внесенные в файл конфигурации, и перезапустите Raspberry Pi.

Не забудьте настроить маршрутизатор для переадресации необходимых портов на Raspberry Pi.

  1. 21 - FTP
  2. 80 - веб-сервер
  3. 443 - SSL

Петр Кула
источник
ОП не спрашивает, как общаться Raspberry Pi с WAN. В этом ответе делается акцент на включении связи через WAN. OP просто хочет общаться с его Rasberry Pi удаленно (это может быть в той же сети, но физически удаленно).
Четан Бхаргава
Да. Я понимаю вашу точку зрения. Но, конечно же, первые ответы (после поиска в Интернете) заставят его понять, что он может использовать SSH, если находится в сети. Поэтому я предположил, что ему нужно разместить это в удаленном месте (так как он предусмотрел подключение к Интернету 24/7) и общаться с ним «удаленно», а не с «локальной» сетью. К сожалению, нет обратной связи от ОП, так что неясно.
Петр Кула
0

Другой вариант - разместить свой интерфейс на веб-сервере в Интернете (и / или приложениях на мобильных устройствах) и использовать очередь сообщений для связи между ними.

Очереди сообщений позволяют избыточность и абстрагирование между интерфейсом (ами) и фоном (ами)

MQTT предназначен для этой задачи и является бесплатным

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

back_ache
источник