Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь установка mosquitto на VPS сервер.

Тема в разделе "Домашние IoT серверы", создана пользователем mercer07, 20 фев 2018.

  1. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    День Добрый.
    Требуется помощь по настройке брокера на виртуальном сервере.
    Тип ос Ubuntu 16.04LTS.
    Сам брокер установлен и в Localhost между терминалами сообщения уходят.
    Вопрос- как подключится к нему из вне?
    Что и как нужно сделать.
    Спасибо.
     

    Вложения:

    • LOG.txt
      Размер файла:
      1,6 КБ
      Просмотров:
      8
    Последнее редактирование: 24 фев 2018
  2. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    617
    Симпатии:
    72
    mercer07, Судя по логу, москита принимает соединения с любого интерфейса, не ограничен только локалхостом.
    Если порты 1883 на ип в4 в6 не закрыты фаерволом то какие проблемы такими же как Вы говорите "терминалами" отправить сообщения из вне?
    Когда выполняете из вне mosquitto_pub или mosquitto_sub что происходит?
     
  3. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    День Добрый.
    Проблема в том, что я как раз и не могу подключится к нему, кроме как через терминал.
    При попытке подключится из вне получаю ошибки, то недоступность брокера либо неправильный логин или пароль ( allow_anonymous false
    password_file /etc/mosquitto/passwd) пока не редактировал и не устанавливал ограничений подключений к брокеру.

    При установке mosquitto обычно по умолчанию устанавливается порт и адрес подключения к нему что то вроде 127.0.0.1 в народе называемое localhost и порт 1883, интересует где скрываются данные настройки?
    Просто я думаю что проблема как раз в этом, что нужно указать адрес моего хоста в этих настройках, или я ошибаюсь?
     
  4. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    617
    Симпатии:
    72
    allow_anonymous false - как раз ограничивает анонимусов, если пользователи не заведены и анонимусам вход запрещен, маските нет смысла работать, потому что, пользователей нет и анонимусам нельзя, получаете "то недоступность брокера", можете результаты увидеть в /var/log/mosquitto/mosquitto.log

    редактировать /etc/mosquitto/passwd не стоит, для этого есть специальная утилита
    root@169285:~# mosquitto_passwd -c /etc/mosquitto/passwd user1
    Password:
    Reenter password:

    не так, по умолчанию порт открыт на всех интерфейсах (я пробовал на mosquitto version 1.4.8), Вы можете ограничить, указав в конфиге
    listener 1883 localhost

    после изменения настроек (или после добавления пользователей) не забывайте перезапускать маскиту
    systemctl restart mosquitto

    маны по маските вполне адекватные, попробуйте почитать
     
    Последнее редактирование: 21 фев 2018
  5. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    Насчёт инструкций, с вами согласен, но к сожалению нет инфы как в моём конкретном случае все это настраивается.
    При подключении из вне код ошибки в файле.
     

    Вложения:

  6. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    617
    Симпатии:
    72
    Вы уверены что порт 1883 открыт снаружи, при попытки установления соединения с Вашим сервером простым телнетом получаю ошибку
    telnet: Unable to connect to remote host: No route to host

    Я установил брокера на выделенном сервере, никаких настроек не делал совсем, на локальном ПК установил пакет mosquitto-clients
    на локальном ПК в одном терминале запустил подписчика
    mosquitto_sub -h uspd.su -t my/topic
    а в другом терминале выполнил публикацию
    mosquitto_pub -h uspd.su -t my/topic -m "test"
    в первом терминале увидел результат
    alex@vb-u16:~$ mosquitto_sub -h uspd.su -t my/topic
    test
    ^C
     
  7. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    День Добрый.
    Я единственное использовал не телнет подключение,а через SSH терминал ,подписываюсь на топик в терминале (андроид приложение) либо на компе pytty и отправляю топик с первого терминала.
    В настройках сервера, не могу сказать включено подключение по телнет, навсякий случай активировал входящий(iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT)

    И вопросик: пытаюсь активировать NAT пакеты в ответ получаю
    root@mqtt-iot:~# iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
    iptables v1.6.0: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
    root@mqtt-iot:~# or your kernel needs to be upgraded

    И по установке, изначально установил так
    sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
    sudo apt-key add mosquitto-repo.gpg.key
    cd /etc/apt/sources.list.d/
    sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
    sudo apt-get install mosquitto
    sudo apt-get install mosquitto mosquitto-clients

    Спасибо.
     
  8. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    617
    Симпатии:
    72
    Вам ssh нужен когда вы выполняете что либо на сервере, например настраиваете его, или там на сервере как Вы говорите, публикуете топик для проверки. После настроек не ssh уже и не требуется.
    На локальном ПК(или андроиде) пробуете выполнить подписку или публикацию и получаете ошибку потому как соединения нет.

    Настройка телнет соединения на сервере вообще Вам не потребуется, зачем на сервере открывать не защищенный телнет если есть ssh.
    telnet - есть такое ПО :) которое позволяет устанавливать tcp соединения, отправлять и принимать данные, я его использовал только для проверки соединения с вашим сервером с портом 1883, если Вы пользуетесь putty, то при выборе соединения можно выбрать Connection Type - Telnet, ввести адрес и порт и нажать кнопку Open, если увидите Network error: Connection refused, значит соединения нет.

    Вы выбрали наверно у "джино" виртуализацию OpenVZ, в которой одно линукс ядро копируется во все контейнеры (это особенность данной виртуализации, хостер тут ни причем), и часть модулей ядра за ненадобностью не установлена, ничего удивительного в ответе что таблица nat ядром не поддерживается и вряд ли хостер для Вас будет добавлять недостающие модули в ядро. А зачем Вы в nat то полезли? Хостер скорее всего режет соединения до вашего сервера, посмотрите внимательно их "Вопросы и ответы".

    Странно??? Для чего подключать маскитовский реп, маскита есть в официальных репах убунты.
     
    Последнее редактирование: 22 фев 2018
  9. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    Согласен с вами, но если так в мануале по установке описано.
    Да и возможно их и не было в частности в этой системе,сервер то виртуальный как ни как что они там с ней делали.
     
  10. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    617
    Симпатии:
    72
    mercer07,
    Если Вам ещё интересен этот вопрос, спросил я у хостера про ограничения на открытые порты на виртуализации OpenVZ,
    если подключен выделенный IP, у Вас есть доступ ко всем портам,
    если не подключен, то локально можно настроить любой порт, пробросить для доступа из вне можно три порта.
     
  11. mercer07

    mercer07 Новичок

    Сообщения:
    7
    Симпатии:
    1
    Добрый день.
    Спасибо огромное вам за консультации.
    (Тоже вопрос в поддержку написал пока не ответили.)
    Буду настраивать порты.
    Ещё раз Спасибо вам за помощь.
     

Поделиться этой страницей