Windows パソコンから Raspberry Pi OS にリモート接続し,アプリを開く

ユースケース: Raspberry Pi を Windows パソコンとネットワークで接続し,Windows パソコンから操作する.Raspberry Pi 専用のディスプレイやキーボードを用意せずに使用できる.

目次

  1. 前準備
  2. Raspberry Pi と Windows パソコンをネットワーク接続
  3. IP アドレス等の確認(Windows パソコン)
  4. Windows からリモートログインし,アプリを開く

【サイト内の Raspberry Pi 関連ページ】

小型コンピュータ Raspberry Pi について: 別ページ »にまとめ

関連する外部ページ

Raspberry Pi 公式のリモートアクセスの解説: https://www.raspberrypi.com/documentation/computers/remote-access.html

前準備

Raspberry Pi OS の準備

Raspberry Pi OS を microSD カードに書き込み,SSH サーバを有効にし,ユーザ名とパスワードを設定する手順は,「別のページ」で説明している.

* Raspberry Pi OS では,2022年4月以降のバージョンで,pi / raspberry という既定のアカウントは廃止されている.リモートログインには,microSD カードへの書き込み時に自分で設定したユーザ名とパスワードを使用する.

Raspberry Pi と Windows パソコンをネットワーク接続

ここで行うこと: 無線または有線の LAN に接続された Windows パソコンを用意し,ネットワークケーブルを使って Raspberry Pi と Windows パソコンをネットワーク接続する.

事前確認

次のどちらの構成で使用するかを事前に確認する.

  1. Raspberry Pi は,Windows パソコンを経由してインターネット接続する

    Raspberry Pi と Windows パソコンを,ネットワークケーブル(有線)で直結する.Windows パソコンは Wi-Fi などでインターネット接続する.この構成では,次の「ネットワーク接続の共有(Windows パソコン)」の設定が必要である.

  2. Raspberry Pi は,Windows パソコンを経由せずにインターネット接続する

    Raspberry Pi と Windows パソコンを,それぞれネットワークケーブルで LAN スイッチやルータなどのネットワーク機器に接続する(Raspberry Pi と Windows パソコンをネットワークケーブルで直結することはない).この構成では,ネットワーク接続の共有の設定は不要である.

ネットワーク接続の共有(Windows パソコン)

「Raspberry Pi は,Windows パソコンを経由してインターネット接続する」場合に必要な設定である.

次の手順で,インターネット接続の共有(ICS)を設定する.

  1. WindowsWindows キー + R を押し,「ncpa.cpl」と入力して Enter キーを押す

    「ネットワーク接続」の画面が開き,ネットワークアダプタの一覧が表示される.

  2. インターネットに接続しているアダプタ(Wi-Fi 接続の場合は「Wi-Fi」)を右クリックし,「プロパティ」を選ぶ

    * Wi-Fi のアダプタが表示されていないときは,Windows のパソコンで無線 LAN 接続を行ってから,もう一度試す.

  3. 共有」タブをクリック
  4. ネットワークのほかのユーザーに、このコンピューターのインターネット接続を通じての接続を許可する」をチェックし,「OK」をクリック

    共有先のネットワーク接続を選ぶ欄が表示された場合は,Raspberry Pi をつなぐ有線 LAN のアダプタ(「イーサネット」など)を選ぶ.

* インターネット接続の共有を有効にすると,共有先のアダプタの IP アドレスは 192.168.137.1 に設定され,Raspberry Pi には 192.168.137.x の IP アドレスが割り当てられる.

IP アドレス等の確認(Windows パソコン)

  1. Windowsコマンドプロンプトを実行する.
  2. Windows パソコンで ARP テーブルを表示する

    Windowsコマンドプロンプトで,「arp -a」を実行して ARP テーブルを表示する.これで,ネットワークにつながっている機器の IP アドレスを確認する.

    arp -a
    
  3. 給電されていない状態で,Raspberry Pi へネットワークケーブルをつなぐ

    ネットワークケーブルは,Windows のパソコンに直結するか,ネットワークハブに接続する.

  4. Raspberry Pi への給電を開始する

    Raspberry Pi の起動には,1分程度かかる.

  5. Windows パソコンで ARP テーブルの変化を確認する

    Windowsコマンドプロンプトで,「arp -a」を実行して ARP テーブルを表示する.そして,先ほどとの変化を確認する.増えた IP アドレスが Raspberry Pi の IP アドレスである.

    arp -a
    
    * Windows での実行結果例 (1)

    Windows のパソコンと Raspberry Pi を,ともに有線のネットワークケーブルで同じネットワークハブに接続した場合

    Raspberry Pi をつなぐ前

    Raspberry Pi をつないだ後

    増えた IP アドレスを確認する(下の図では 192.168.137.132).これが Raspberry Pi の IP アドレスであり,あとで使用する.

    * Windows での実行結果例 (2)

    無線 LAN 接続された Windows パソコンに,ネットワークケーブルで直結した場合

    Raspberry Pi をつなぐ前

    Raspberry Pi をつないだ後

    新しい「インタフェース」が増えていることを確認する.増えていない場合は,「ネットワーク接続の共有(Windows パソコン)」の設定をやり直す.

    増えたインタフェースの一番上のアドレスを確認する(下の図では 192.168.2.111).これが Raspberry Pi の IP アドレスであり,あとで使用する.

    * ARP テーブルで Raspberry Pi の IP アドレスが確認できない場合には,次を行う.
    • LAN 内の IP アドレスのスキャンを行い,Raspberry Pi の IP アドレスを確認する

      LAN 内の IP アドレスのスキャンには Advanced IP Scanner などを使用する.Advanced IP Scanner を実行すると,次のような画面が得られる.過去に接続したことがあり現在は起動していない機器も表示されることがあるため,一番右の「状態」の欄で,現在起動しているものを確認する.

    • ルータの管理画面で,DHCP により割り当てられたアドレスの一覧を確認する

      「Raspberry Pi は,Windows パソコンを経由せずにインターネット接続する」構成の場合に使用できる方法である.

    • Raspberry Pi 側のハードウェアの状態を確認する

      Raspberry Pi の電源ランプが点灯しているか,ネットワークケーブルのコネクタに緩みがないか,ネットワークコネクタのランプが点灯しているかを確認する.ネットワークコネクタのランプが点灯していない場合は,microSD カードへのオペレーティングシステムの書き込みができていない可能性があるため,「別のページ」の手順で microSD カードを作成し直す.

    • Windows パソコンと Raspberry Pi を直結している場合は,Windows パソコン側の有線 LAN アダプタの設定を確認する

      「ncpa.cpl」で「ネットワーク接続」を開き,有線 LAN のアダプタのプロパティで「インターネット プロトコル バージョン 4 (TCP/IPv4)」を選び,「IP アドレスを自動的に取得する」がチェックされていることを確認する.

Windows からリモートログインし,アプリを開く

Windows には OpenSSH クライアント(ssh コマンド)が標準で搭載されているが,Raspberry Pi 上の GUI アプリの画面を Windows 側に表示する(X11 転送)には,Windows 側に X サーバが必要である.ここでは,X サーバを内蔵している MobaXTerm を使用する.

リモート接続ソフト MobaXTerm のインストール(Windows 上)

Windows での MobaXTerm のインストールは,「別のページ」でも説明している.ここでは要点のみを示す.

次のサイトで配布されている MobaXTerm Home Edition(Installer edition)をダウンロードしてインストールする.

https://mobaxterm.mobatek.net/download-home-edition.html

MobaXTerm の設定

  1. Windows で MobaXTerm を起動する
  2. MobaXTerm で SSH keepalive の設定を行う

    接続の切断を防ぐための設定である.この操作は一度行えばよい.

    1. Settings」で「Configuration」を選ぶ
    2. SSH」をクリック
    3. SSH keepalive」をチェックし,「OK」をクリック

MobaXTerm を用いてリモートログイン

  1. MobaXTerm で「Start local terminal」をクリック
  2. リモートログインを行う

    接続先には,microSD カードへの書き込み時に設定したホスト名に「.local」を付けた名前を指定する.ホスト名を raspberrypi とした場合は「raspberrypi.local」である.この名前は,mDNS の機能により IP アドレスに変換される(Windows 10 バージョン 1803 以降および Windows 11 は mDNS に対応している).

    MobaXTerm のコンソールで,次のコマンドを実行する.「-X」は X11 転送を有効にするオプション,「pi」の部分には microSD カードへの書き込み時に設定したユーザ名を指定する.

    ssh -X pi@raspberrypi.local
    

    これで接続できない場合には,先ほど調べた IP アドレスを直接指定する.

    ssh -X pi@<IPアドレス>
    
    *Could not resolve hostname raspberrypi.local」というエラーメッセージが表示される場合,mDNS による名前解決ができていない.次の方法で回避できる.

    1. IP アドレスを直接指定してリモートログインする

    • このページの「IP アドレス等の確認(Windows パソコン)」の手順を実施する.
    • 確認できた IP アドレスが 192.168.137.132 の場合,「ssh -X pi@raspberrypi.local」の代わりに「ssh -X pi@192.168.137.132」を実行する.

    2. mDNS で使用するポートの通信を許可する

    Windows のコマンドプロンプト管理者として実行する.

    次のコマンドを実行して,mDNS が使用するポート 5353(UDP)の受信を許可する.

    netsh advfirewall firewall add rule name ="mdns" dir=in protocol=udp localport=5353 action=allow
    
  3. パスワードを入力する

    microSD カードへの書き込み時に設定したパスワードを入力し,Enter キーを押す.

    * このとき,入力したパスワードが画面に表示されないのは正常動作である.

    「パスワードを保存してよいか」の確認表示に対しては,保存する場合は「Yes」をクリックする.

    MobaXTerm の「Session」で「SSH」を選び,次のように接続先とユーザ名を設定してリモートログインすることもできる.
  4. Raspberry Pi OS の端末(ターミナル)を開いて,X11 転送の動作を確認する
    lxterminal
    

    上は,Raspberry Pi の画面

    上は,Windows の画面
  5. 確認できたら「exit」でリモートログインを終了する
    exit
    
* デスクトップ画面全体をリモート操作したい場合は,SSH の代わりに次の方法が使用できる.