MQTTサーバー · 2 min read · Oct 31, 2025
Ubuntu 22.04にMosquitto MQTTサーバーをインストールする方法

Mosquittoは、MQTTプロトコルの無料でオープンソースの軽量サーバー実装です。低電力のシングルボードコンピュータからフルサーバーまで、すべてのデバイス向けに設計されています。MQTTはTCP/IPプロトコルの上で動作し、既存のインターネット家庭ネットワークを使用してIoTデバイスにメッセージを送信し、それらのメッセージに応答します。C言語で書かれているため、他のMQTTブローカーよりも高速で効率的です。
この投稿では、Ubuntu 22.04にMosquittoサーバーをインストールする方法を示します。
前提条件
- Ubuntu 22.04を実行しているサーバー。
- サーバーに設定されたルートパスワード。
必要な依存関係をインストールする
始める前に、すべてのシステムパッケージを最新バージョンに更新およびアップグレードすることをお勧めします。次のコマンドを実行して更新できます。
apt update -y
apt upgrade -yすべてのパッケージをアップグレードした後、次のコマンドを実行して他の必要なパッケージをインストールします。
apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -yすべての必要なパッケージがインストールされたら、次のステップに進むことができます。
Mosquittoサーバーをインストールする
デフォルトでは、MosquittoパッケージはUbuntu 22.04のデフォルトリポジトリにはありません。したがって、APTにMosquittoの公式リポジトリを追加する必要があります。次のコマンドで追加できます。
add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -yリポジトリがAPTに追加されたら、次のコマンドでインストールできます。
apt install mosquitto mosquitto-clients -yインストールが完了したら、次のコマンドでMosquittoのステータスを確認できます。
systemctl status mosquitto次の出力が表示されるはずです。
? mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-12-06 04:50:33 UTC; 8s ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 5491 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 5492 ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 5493 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 5494 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Main PID: 5495 (mosquitto)
Tasks: 1 (limit: 2242)
Memory: 1.3M
CPU: 23ms
CGroup: /system.slice/mosquitto.service
??5495 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Dec 06 04:50:32 ubuntu2204 systemd[1]: Starting Mosquitto MQTT Broker...
Dec 06 04:50:33 ubuntu2204 systemd[1]: Started Mosquitto MQTT Broker.
MQTT管理者パスワードを作成する
セキュリティ上の理由から、MQTTのパスワード認証を設定することをお勧めします。
次のコマンドで管理者ユーザーとパスワードを設定しましょう。
mosquitto_passwd -c /etc/mosquitto/passwd hitesh以下のようにパスワードを設定します。
Password:
Reenter password:
次に、MQTT設定ファイルを編集し、ポートとパスワードファイルを定義します。
nano /etc/mosquitto/conf.d/default.conf次の行を追加します。
listener 1883
password_file /etc/mosquitto/passwd
ファイルを保存して閉じたら、Mosquittoサービスを再起動して変更を適用します。
systemctl restart mosquittoMQTTを使用してメッセージを送受信する方法
Mosquittoクライアントを使用してMosquittoサーバーに接続し、異なるトピックでメッセージを送受信する必要があります。
メッセージを送受信する前に、トピックにサブスクライブする必要があります。ホームオートメーションアプリケーションで使用できるトピックの1つを使用できます。
- home/lights/sitting_room
- home/lights/kitchen
- home/lights/master_bedroom
- home/lights/kids_bedroom
次のコマンドを実行して、home/lights/kids_bedroomトピックにサブスクライブします。
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"次に、新しいターミナルインターフェースを開き、次のコマンドでhome/lights/kids_bedroomトピックにメッセージを公開します。
mosquitto_pub -u hitesh -P password -m "ON" -t "home/lights/kids_bedroom"最初のターミナルでは、ONペイロードが表示されます。
ON
次に、2番目のターミナルに移動し、同じトピックにOFFメッセージを送信します。
mosquitto_pub -u hitesh -P password -m "OFF" -t "home/lights/kids_bedroom"最初のターミナルで次のメッセージが表示されるはずです。
ON
OFF
完了したら、次のステップに進むことができます。
Let’s Encrypt SSLでMosquittoを保護する
MosquittoをSSLで保護するには、サーバーにCertbotクライアントパッケージをインストールする必要があります。
まず、次のコマンドを使用してSnapパッケージマネージャーをインストールします。
apt install snapd次に、次のコマンドを使用してSnapパッケージを更新します。
snap install core
snap refresh core次に、次のコマンドでCertbotパッケージをインストールします。
snap install --classic certbot次に、Certbotバイナリのシンボリックリンクをシステムの場所に作成します。
ln -s /snap/bin/certbot /usr/bin/certbot次に、次のコマンドを実行してSSL証明書を生成します。
certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mosquitto.linuxbuz.com次の出力が表示されるはずです。
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for mosquitto.linuxbuz.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem
This certificate expires on 2023-03-06.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
次のコマンドを使用して、生成されたすべての証明書ファイルを確認できます。
ls /etc/letsencrypt/live/mosquitto.linuxbuz.com/次の出力が得られます。
cert.pem chain.pem fullchain.pem privkey.pem README
次に、次のコマンドを使用してDiffie-Hellman証明書を生成します。
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048完了したら、次のステップに進むことができます。
MQTTをLet’s Encrypt SSLを使用するように構成する
まず、次のコマンドを使用して生成されたすべての証明書をMosquittoディレクトリにコピーします。
cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem /etc/mosquitto/certs/server.pem
cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem /etc/mosquitto/certs/server.key次に、Mosquitto証明書に適切な所有権を設定します。
chown -R mosquitto: /etc/mosquitto/certs次に、Mosquitto設定ファイルを編集し、Let’s Encrypt SSLを定義します。
nano /etc/mosquitto/conf.d/default.conf次の行を追加します。
listener 8883
certfile /etc/mosquitto/certs/server.pem
cafile /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem
ファイルを保存して閉じたら、Mosquittoサービスを再起動して変更を適用します。
systemctl restart mosquitto次に、次のコマンドを使用してMosquitto接続を確認します。
mosquitto_pub -h mosquitto.linuxbuz.com -t "home/lights/kids_bedroom" -m "hello" -p 8883 --capath /etc/ssl/certs/ -u hitesh -P password完了したら、Webブラウザを介してMosquitto接続をテストできます。
Mosquitto Websocketsを構成する
次に、ブラウザ内からMQTTプロトコルを使用するためにWebsocketsを構成する必要があります。Mosquittoのデフォルト設定ファイルを編集することで有効にできます。
nano /etc/mosquitto/conf.d/default.conf次の行を追加します。
listener 8083
protocol websockets
certfile /etc/mosquitto/certs/server.pem
cafile /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem
ファイルを保存して閉じたら、Mosquittoサービスを再起動して変更を適用します。
systemctl restart mosquitto次に、ターミナルインターフェースを開き、次のコマンドを実行します。
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"次に、Webブラウザを開き、ブラウザベースのMQTTクライアントを使用してWebSockets機能をテストします。次の画面が表示されるはずです。

Mosquittoサーバーのホスト、ポート、ユーザー名、パスワードを入力し、Connectボタンをクリックします。次の画面が表示されるはずです。

次に、任意のトピック、メッセージを入力し、Publishボタンをクリックします。
次に、ターミナルインターフェースに戻ります。次の出力にあなたの公開したメッセージが表示されるはずです。
Hi
結論
この投稿では、Ubuntu 22.04にMosquittoサーバーをインストールし、Let’s Encrypt SSLで保護する方法を説明しました。また、ブラウザベースのクライアントを介してMosquittoをテストしました。質問があればお気軽にお尋ねください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。