質問: 家の外から自宅のエアコンなどを操作できるスマートリモコンに関してです。 自宅のルーター上で、ポート開放設定などをしていないのに、購入後設定すると、家の外から家電を操作できます。 どのような仕組みで外部から断絶された機器を操作しているのでしょうか?
回答: 自分では利用していないのですが、面白そうなネタなので、ちょっと調べてみました。 検索して、ぱっと引っかかったのは、こちら。 スマートリモコンの特徴とポート開放設定説明 | インターネット接続解説ブログKAGEMARU-info 嘘を書く必要性はあまりなさそうな情報なので、とりあえず信用する方向で読みます。 利用する条件で、以下の条項が書いてあります。 > グローバルIPアドレスが割り当されているインターネット(注意、一部製品はv6プラス非対応) > > まあ、そりゃ、そうだろうけれど、固定IPアドレスのことだったら、一般人にはハードル高くね? とか思います。 # なので、話半分で、読みます :-) 読み進めて行くと、三つのサービスについて言及があります。 それぞれのポート開放については、以下のように書いてあります。 | Nature Remo | 不要 | | eRemote (BroadLink OEM) | 場合によっては必要 UDP 80、8080 / TCP 80 | | sRemo-R | 場合によっては必要 初期設定ポート番号 TCP 777 | 「場合によっては」って何? というか、「不要」ってどういうこと。 Nature Remo について、掘り下げます。 【セッションレポート】Nature Remoの裏側 ~ AWSとWeb技術をIoTの世界でフル活用する【#AWSDevDay】 | Developers.IO Nature社が技術情報についてお話をしていたのを聞いた方のレポートがありました(@2019/10)。 Nature Remo では、通信に WebSocket を使っているとのこと。 自宅に置いたリモコンのコントローラが 80 か 443(きっと、こっち)を使って、サーバにつなぎに行ってる、ということらしい。 WebSocket なので、socket はつなぎっぱなし。 サーバからのプッシュも可能。 接続が切れたら、自宅のコントローラから再接続、ということでしょう。 なので、厳密に言えば TCP で、80 と 443 のポート開放は必要ですが、一般の利用状況であれば開いてるのが普通なので、ポート開放を意識することがない(or 少ない)ということらしいです。