記事ディレクトリ
序文
Mosquitto は、MQTT プロトコル バージョン 3.1 および 3.1.1 を実装するオープン ソースのメッセージ ブローカーです。 Windows、Linux、macOS などのさまざまなプラットフォームで実行できます。 Mosquitto は、モノのインターネット、センサー、モバイル アプリケーションなどのシナリオで使用でき、軽量で信頼性の高いパブリッシュ/サブスクライブのモデルベースのメッセージング メカニズムを提供します。
MQTT プロトコルを介したリモート アクセスの利点は、ネットワークを介したリモート通信が可能になり、さまざまな場所でデバイスを制御および監視できることです。同時に、MQTT プロトコルは軽量、効率的、信頼性が高く、低帯域幅で不安定なネットワーク環境でも安定して実行できます。さらに、MQTT プロトコルは複数のプログラミング言語とプラットフォームもサポートしているため、開発者は二次開発や統合を行うのが便利です。
以下では、Linux で Mosquitto MQTT プロトコル メッセージ サーバーを構築し、それを Cpolar イントラネット侵入ツールと組み合わせてリモート接続を実現する方法を説明します。
1. Linux 上で Mosquitto を構築する
この例は centos 7 システム上にあり、yum を使用してワンクリックでインストールします。
yum install mosquitto -y
インストールが完了したら、Mosquitto サービスを操作するためのコマンドをいくつか示します。
sudo systemctl start mosquitto # 启动 Mosquitto 服务
sudo systemctl stop mosquitto # 停止 Mosquitto 服务
sudo systemctl restart mosquitto # 重新启动 Mosquitto 服务
sudo systemctl status mosquitto #检查服务器状态
スタートアップ コマンドを実行した後、 と入力してステータスを表示します。サービスが正常に実行され、ローカル インストールが成功したことがわかります。次に、cpolar ツールをインストールして、Mosquitto サービスのローカル ポートに侵入します< /span>1883
、リモート アクセス接続を実現します。
2. Linux に Cpolar をインストールする
上記で Mosquitto MQTT サーバーのインストールに成功しました。次に、Linux に cpolar イントラネット侵入ツールをインストールし、cpolar を介してローカル ポート マッピングのパブリック ネットワーク アドレスを転送します。ドメイン名の登録やクラウド サーバーの購入を行わずに、簡単にリモート アクセスを実現できます。以下は cpolar をインストールする手順です。
cpolar公式サイトアドレス:https://www.cpolar.com
- ワンクリックスクリプトインストールコマンドを使用する
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- システムにサービスを追加する
sudo systemctl enable cpolar
- cpolarサービスを開始する
sudo systemctl start cpolar
cpolar が正常にインストールされたら、外部ブラウザで Linux ポート 9200 にアクセスします: [http://LAN ip:9200]。cpolar アカウントを使用してログインします。ログイン後、cpolar Web 設定インターフェイスが表示されます。 Web 管理インターフェイス。設定するだけです。
3. MQTT サービスのパブリック ネットワーク接続アドレスを作成します
cpolar Web UI 管理インターフェイスにログインした後、左側のダッシュボードで [トンネル管理] - [トンネルの作成] をクリックします。
- トンネル名:カスタマイズ可能ですが、既存のトンネル名と重複しないように注意してください。
- プロトコル: tcp
- ローカルアドレス: 1883 (ローカルのデフォルトポート)
- ドメイン名のタイプ: 一時的なランダム TCP ポート
- 地域: 中国 VIP を選択
クリック创建
次に、左側のオンライン トンネル リストを開き、トンネルの作成後に生成された TCP アドレスを表示します。このアドレスはパブリック ネットワーク接続アドレスです。このアドレスを使用して任意のデバイスで接続できます。
4. クライアントは MQTT サービスにリモート接続します
パブリック ネットワーク アドレスは、上記の cpolar で作成されました。次に、MQTT クライアント ツール mqttfx を使用して、リモート接続テストを実施します。このクライアントをお持ちでない場合は、公式ダウンロードを入力してください: https://softblade.de/en/download -2/、ダウンロード インストールが開いたら、設定アイコンをクリックします
cpolar パブリック ネットワーク アドレスを介して接続します。[アドレス] 値はパブリック ネットワーク アドレス、[ポート] 値はパブリック ネットワーク アドレスに続く対応するポート番号です。入力後、[適用] をクリックします。
次に、メイン インターフェイスに戻り、[接続] をクリックすると、ライトが緑色に変わり、接続が成功したことを示します。
メッセージを公開してサブスクライブできるかどうかをテストできます。まず、サブスクライブ サブスクリプション インターフェイスにトピック サブスクリプション ID を入力し、[サブスクライブ] ボタンをクリックしてサブスクリプションを開始します。
次に、「公開」公開インターフェースで、同じトピック ID を入力し、公開するメッセージを入力して、「公開」ボタンをクリックします。
購読インターフェイスに戻ると、情報が正常に購読されたことがわかります。
5. コードは MQTT サービスを呼び出します
同様に、Java を例としてコード レベルで接続し、関連パッケージをインポートします。
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.1.0</version>
</dependency>
次に、Cpolar パブリック ネットワーク アドレスを使用して接続し、ClientID を入力して、同じトピックにメッセージをパブリッシュします。もちろん、ここでのテストでは、アドレスは内部的に書き込まれます。たとえば、運用環境では、次のように設定することをお勧めします。その後の変更を容易にするために、アドレスを外部に設定します。
プログラムを実行すると、クライアントの Subscribe インターフェイス ツールで、コード内にパブリッシュされたメッセージ データが表示され、接続テストも成功することがわかります。
6. 固定接続 TCP パブリック ネットワーク アドレス
上記の手順ではランダムな一時的な TCP ポート アドレスが使用され、生成されるパブリック ネットワーク アドレスはランダムな一時的なアドレスであり、24 時間以内にランダムに変更されることに注意してください。次に、固定の TCP ポート アドレスを設定します。このアドレスは変更されません。設定後は、毎日繰り返しアドレスを変更する必要はありません。
固定 TCP ポート アドレスを設定するには、cpolar を Professional Edition パッケージ以上にアップグレードする必要があります。
固定 TCP アドレスを予約し、cpolar 公式 Web サイトにログインし、左側の [予約] をクリックして、予約された TCP アドレスを見つけます。世界は固定 TCP アドレスを予約しています:
- 地域: 中国を選択
- 説明: メモ、カスタマイズ可能
クリック保留
アドレスが正常に予約されると、システムは対応する固定パブリック アドレスを生成してコピーします。
cpolar Web UI 管理インターフェイスを開き、左側のダッシュボードで [トンネル管理] - [トンネル リスト] をクリックし、上で作成した TCP トンネルを見つけて、右側の をクリックします。编辑
トンネル情報を変更し、正常に予約された固定 TCP アドレスをトンネルに構成します。
- ポートタイプ: 固定 TCP ポートに変更されました
- 予約済みの TCP アドレス: 公式 Web サイトで正常に予約されたアドレスを入力します。
クリック更新
トンネルが正常に更新されたら、左側のダッシュボードのステータス - [オンライン トンネル リスト] をクリックすると、パブリック ネットワーク アドレスが固定 TCP アドレスに更新されたことがわかります。
7. 固定アドレス接続テスト
アドレスを固定した後、プログラムを修正して当社の固定 TCP アドレスに接続します。もちろん、ここでのテストでは内部でアドレスを書き込んでいます。たとえば、本番環境では、アドレスを外部で設定して接続することをお勧めします。その後の変更。
受信したサブスクリプションが送信メッセージを受信し、永続的な固定アドレスが設定されていることがわかります。