Я установил комара на Debian 9
apt-get install mosquitto mosquitto-clients
сделал перезапуск службы Re-Start mosquitto
проверил это
mosquitto_pub -d -t My/Topic2 -m "Hello MQTT"
нет сообщения об ошибке
создал пароль
mosquitto_passwd -c /etc/mosquitto/passwd myUsername
создал aclfile
touch /etc/mosquitto/aclfile
nano /etc/mosquitto/aclfile
с этим содержанием:
# This affects access control for clients with no username.
topic read myTopic/#
# This only affects clients with username "myUsername".
user myUsername
topic myTopic/#
# This affects all clients.
pattern write $SYS/broker/connection/%c/state
вставить путь к acl_file в этот файл
nano /etc/mosquitto/mosquitto.conf
acl_file /etc/mosquitto/aclfile
password_file /etc/mosquitto/passwd
поэтому план состоит в том, что пользователь «myUsername» может публиковать в «myTopic», а все остальные пользователи, включая гостей, могут только читать.
У меня эта конфигурация уже работала на другом сервере, но в этом случае что-то не так. В первый раз, когда я тестировал, я забыл добавить путь к файлу password_file в mosquitto.conf и получил ошибку: Отказано в соединении, если я хочу, поэтому опубликуйте также, если я хочу только подписаться
Хорошо, я исправил эту проблему, но теперь я могу публиковать без имени пользователя и пароля.
и, конечно же, я сделал перезагрузку:
service mosquitto restart
Итак, если я отправлю
mosquitto_pub -d -t myTopic/test -m "Access denied is expected"
Я не получаю ошибки, похоже, сообщение опубликовано
если я открою вторую оболочку (а также с удаленной машины), я могу подписаться
mosquitto_sub -d -t myTopic/test
но если я публикую что-то в этой теме, ничего не приходит (пинг работает)
Любые идеи для моих 2 проблем?
PS: я НЕ профессионал в Linux, поэтому, если вам нужна дополнительная информация, предоставьте мне правильную информацию о том, как получить эту информацию.
РЕДАКТИРОВАТЬ: если я использую
ps -efc
это единственная запись с комарами
mosquit+ 736 1 TS 19 21:36 ? 00:00:02 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
в журнале
nano /var/log/mosquitto/mosquitto.log
я получил
ACL denying access to client with dangerous client id "mosqpub/7977-Debian-93-"
ACL denying access to client with dangerous client id "mosqpub/356-h2700629"
но что касается google, это уже должно быть исправлено в прошлом году
Я использую москитную версию 1.4.10.
ps -efc
). Mosquitto не использует файл конфигурации, если это явно не указано. - person hardillb   schedule 27.01.2018log_type
) - person hardillb   schedule 27.01.2018