Пожалуйста, помогите мне узнать, как публиковать в Mosquitto, сидя на сервере, для которого требуется ssh-файл ключа.
Я пытаюсь опубликовать сообщение на моем сервере Mosquitto на сервере Ubuntu 16.04 с компьютера в другой сети.
Я сузил проблему до параметров конфигурации подключения сервера.
Для SSH мне нужно передать файл ключа как:
ssh -i mykeyfile.pem user@ipaddress
Проблема в том, что я не могу получить доступ к Mosquitto с компьютера в другой сети, потому что я не знаю, как указать файл ключа. Я проверил порты, и они открыты.
Вот как я пытаюсь опубликовать:
mosquitto_pub -h ip_address -p 1883 -t test -m "hello world"
С той же конфигурацией я пробовал на другом сервере, которому не нужен файл ключа для ssh к нему. Мне удалось опубликовать сообщение. Вот как я пришел к выводу, что проблема заключалась в ключевом файле.
Конфигурация Mosquitto является настройкой по умолчанию. Содержание mosquitto.conf
:
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
Ошибка при попытке опубликовать:
Error: Connection timed out
EDIT
Брандмауэр был отключен, поэтому результат sudo ufw status
был disactivated
. Я включил это и установил некоторые правила. Текущий статус:
Status: active
To Action From
-- ------ ----
8083 ALLOW Anywhere
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
1883 ALLOW Anywhere
8083 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
1883 (v6) ALLOW Anywhere (v6)
Следующий вывод из iptables sudo iptables -L -v -n
:
Chain ufw-user-input (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8083
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:8083
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:22
699 40412 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1883
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1883
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1883
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1883
Но по-прежнему не может публиковать сообщения.
На компьютере, где сидит Москитто, работает сервер Apache2
Надеюсь, это имеет смысл.
Благодарю.