Wirenboard6:InstallingOnTheRemoteSite: различия между версиями

Нет описания правки
Строка 267: Строка 267:
Проверяем доступность сервера  
Проверяем доступность сервера  
<code>ping 10.8.0.1</code>
<code>ping 10.8.0.1</code>
== AutoSSH ==
Еще одно резервное подключение к контроллеру сделаем на основе AutoSSH. Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно -- какое-то время порт, используемый на localhost сервера удерживается sshd.
Устанавливаем на контроллере apt-get install autossh. Генерируем пару ключей для пользователя root:
ssh-keygen
Пароль — пустой.
Для обслуживания удаленных подключений создаем пользователя remote на сервере с оболочкой /bin/false.
В файл /home/remote/.ssh/authorized_keys на сервере добавляем созданный на контроллере ключ /root/.ssh/id_rsa.pub с преамбулой
no-agent-forwarding,no-X11-forwarding,permitopen="localhost:62001"
Что обеспечит дополнительную безопасность сервера при подключении контроллера. Порт 62001 — порт localhost сервера, на который будет перенаправлен ssh-порт данного контроллера.
Первый раз подключаемся с контроллера на сервер вручную:
ssh remote@vpn.mydomain.com
На контроллере создаем файл \etc\systemd\system\autossh.service для запуска autossh в качестве сервиса:
[Unit]
Description=Keeps an ssh tunnel to remote host open
After=network.target
[Service]
User=root
# -p [PORT]
# -l [user]
# -M 0 --> no monitoring
# -N Just open the connection and do nothing (not interactive)
# LOCALPORT:IP_ON_EXAMPLE_COM:PORT_ON_EXAMPLE_COM
ExecStart=/usr/bin/autossh  -M 0 -N -o ServerAliveInterval=15 -o ServerAliveCountMax=5 -o ExitOnForwardFailure=yes -R 62001:127.0.0.1:22 -p 22 remote@vpn.mydomain.com
#ExecStop=/usr/bin/killall -9 autossh
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
Включаем сервис а автозагрузку на контроллере  systemctl enable autossh.service
После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды ssh 127.0.0.1 -p 62001
== Возможные неполадки GPRS-соединения ==
Причин может быть несколько. Самая распространенная и самая банальная — закончился оплаченный лимит трафика. Низкий уровень сигнала или не прикручена антенна. СИМ-карта рассчитана только на 4G-сети. СИМ-карта не вставлена. СИМ-карта нерабочая. Ваш тарифный план не предусматривает пакетную передачу данных.
Прежде чем идти в личный кабинет и звонить провайдеру, можно выполнить ряд простых проверок.
Запустите команду
#gammu networkinfo
Network state        : home network
Network              : 250 01 (MTS, Russian Federation), LAC 18A6, CID 796B11
Name in phone        : "MTS RUS"
Packet network state : home network
Packet network      : 250 01 (MTS, Russian Federation), LAC 18A6, CID 796B11
Name in phone        : "MTS RUS"
GPRS                : attached
Важно, что контроллер подключен к пакетной сети передачи данных (GPRS                : attached) и GPRS-соединение установлено.
После этого оцените уровень сигнала в minicom командой AT+CSQ
Вы получите результат в виде 13,99
Первая цифра показывает мощность сигнала: > 9 — удовлетворительный, > 14 — хороший, > 19 — отличный. Низкие и нестабильные значения CSQ означают, что антенна плохо расположена, неаккуратно подключена, радиообстановка оставляет желать лучшего.
Если обе проверки пройдены, но связи нет, обратитесь к провайдеру (загляните в личный кабинет), можете проверить СИМ-карту в смартфоне.
== Передача данных  с контроллера в облако ==
Для передачи MQTT-сообщений с контроллера в облачный сервис используется MQTT-бридж, конфигурация которого настраивается на контроллере в файле \mnt\data\etc\mosquitto\conf.d\bridge.conf
connection wb_devices_cloud.wb_A7ZO7UCC
address cloud_server.com
notifications true
notification_topic /client/wb_A7ZO7UCC/bridge_status
topic /devices/#  both 2 "" /client/wb_A7ZO7UCC
topic /config/#  both 2 "" /client/wb_A7ZO7UCC
topic /rpc/#  both 2 "" /client/wb_A7ZO7UCC
username wb_A7ZO7UCC
password your_mqtt_cloud_password
service mosquitto restart
5813

правок