5813
правок
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 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 |
правок