Windowsからラズベリーパイ(Raspberry Pi Zero WH)接続で「無効なホスト」エラー

赤いケースに入ったRaspberry Pi Zero WHとWindowsパソコンのTera Term画面に「無効なホスト」エラーが表示されている初心者向けトラブル解決ガイドのアイキャッチ

Windowsから Raspberry Pi Zero WH にTera Termで接続しようとしたところ、「無効なホスト」 というエラーが出てしまいました。

ホスト名には、いつもどおり次の名前を入力しています。

raspberrypi.local

結論からいうと、このときは Windows 10 Version 1803 のmDNSまわりの不具合 が原因だったようで、Windows 10 Version 1809へ更新したら接続できるようになりました。

ただ、「無効なホスト」と表示されたときに、いきなりWindows Updateだけを試すのは少し不安です。

そこでこの記事では、

  • Raspberry Piは起動しているか
  • Wi-Fiにつながっているか
  • IPアドレスでは通信できるか
  • raspberrypi.local の名前解決だけが失敗しているのか
  • Windows側のバージョンに原因がありそうか

を順番に確認した流れをまとめます。

目次

エラーの発生状況

Raspberry Pi Zero WHの初期設定は、こちらの記事の手順で進めています。

microSDカードにOSを書き込み、SSHとWi-Fiの設定も入れました。

Raspberry Pi Zero WHに電源を接続して起動し、Tera Termを起動します。

「新しい接続」ウィンドウで、ホストに次のように入力しました。

raspberrypi.local
Tera Termの新しい接続画面でホストにraspberrypi.localを入力している画面

そのまま「OK」をクリックしたところ、接続できませんでした。

Tera Termでraspberrypi.localに接続しようとして「無効なホスト」と表示されたエラー画面

「無効なホスト」と出ると、Raspberry Pi側が起動していないのか、Wi-Fi設定を間違えたのか、Windows側の問題なのか、すぐには分かりません。

まずは、原因を切り分けていきます。

接続できないときの確認手順

「無効なホスト」が出たときは、いきなり設定を全部やり直すより、順番に確認すると原因を見つけやすいです。

Raspberry Piの電源とWi-Fi、IPアドレス確認、IPアドレスでの通信確認、raspberrypi.localでの名前解決確認を順番に示したトラブルシューティング図

確認したい流れは、次の通りです。

  1. Raspberry Piの電源とWi-Fi接続を確認する
  2. WindowsからIPアドレスを調べる
  3. IPアドレスで通信できるか確認する
  4. raspberrypi.local で通信できるか確認する

IPアドレスでは通信できるのに、raspberrypi.local では通信できない場合、Raspberry Piそのものではなく、名前解決まわりの問題の可能性が高くなります。

Raspberry PiのIPアドレスを調べる

まずは、Raspberry Pi Zero WHがネットワークにつながっているか確認します。

Windowsのスタートメニューから、次の順番でコマンドプロンプトを起動します。

[Windowsシステムツール] → [コマンドプロンプト]

コマンドプロンプトで、次のコマンドを入力します。

for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.0.%i

これは、192.168.0.0 から 192.168.0.255 まで順番にpingを送るコマンドです。

ネットワーク環境によって、IPアドレスの範囲は変わることがあります。

たとえば、自宅のネットワークが 192.168.1.xxx の場合は、次のように変えます。

for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.1.%i

数分待ってコマンドが止まったら、次のコマンドを入力します。

arp -a

すると、同じネットワーク内で見つかった機器のIPアドレスと物理アドレス(MACアドレス)が表示されます。

例として、次のような表示です。

インターフェイス: 192.168.0.8 --- 0xe
インターネット アドレス      物理アドレス          種類
192.168.0.1                 00-xx-xx-xx-xx-10     動的
192.168.0.3                 10-xx-xx-xx-xx-d2     動的
192.168.0.13                dc-xx-xx-xx-xx-be     動的
192.168.0.20                f0-xx-xx-xx-xx-27     動的
192.168.0.26                b8-27-eb-xx-xx-xx     動的
192.168.0.255               ff-ff-ff-ff-ff-ff     静的

この中で、物理アドレスが b8-27-eb から始まっているものが見つかりました。

Raspberry Piで使われているMACアドレスの可能性が高いので、ここでは 192.168.0.26 が Raspberry Pi Zero WH のIPアドレスだと考えました。

見つかったときは、少しほっとします。

少なくとも、Raspberry Pi Zero WHがWi-Fiにつながっている可能性が出てきたからです。

IPアドレスで通信できるか確認する

次に、見つかったIPアドレスへpingを送ってみます。

ping 192.168.0.26

結果は、次のようになりました。

C:\Users\xxxx>ping 192.168.0.26

192.168.0.26 に ping を送信しています 32 バイトのデータ:
192.168.0.26 からの応答: バイト数 =32 時間 =64ms TTL=64
192.168.0.26 からの応答: バイト数 =32 時間 =6ms TTL=64
192.168.0.26 からの応答: バイト数 =32 時間 =7ms TTL=64
192.168.0.26 からの応答: バイト数 =32 時間 =7ms TTL=64

応答が返ってきました。

つまり、WindowsパソコンからRaspberry Pi Zero WHのIPアドレスには通信できています。

ここまでで分かることは、次の通りです。

  • Raspberry Pi Zero WHは起動している
  • Wi-Fiには接続できている
  • Windowsパソコンと同じネットワーク上にいる
  • IPアドレスでは通信できる

それなのにTera Termで raspberrypi.local に接続できないということは、ホスト名の名前解決に問題がありそうです。

raspberrypi.localで通信できるか確認する

では、ホスト名ではどうでしょうか。

次のコマンドを実行します。

ping raspberrypi.local

結果は、次のようになりました。

C:\Users\xxxx>ping raspberrypi.local

ping 要求ではホスト raspberrypi.local が見つかりませんでした。
ホスト名を確認してもう一度実行してください。

IPアドレスでは通信できるのに、raspberrypi.local では通信できません。

つまり、Windows側で raspberrypi.local という名前をIPアドレスに変換できていない状態です。

このように、名前からIPアドレスを調べる仕組みを「名前解決」といいます。

原因と対処の考え方

ここまで確認すると、Raspberry Pi Zero WH自体が完全に見つからないわけではないことが分かります。

IPアドレスでは接続できるがraspberrypi.localでは接続できない場合に、mDNSや名前解決の問題を疑い、Windowsのバージョン確認や更新を検討する考え方をまとめた図

整理すると、次のような状態です。

  • IPアドレスでは接続できる
  • raspberrypi.local では接続できない
  • Wi-Fi接続そのものはできていそう
  • 名前解決がうまくいっていない可能性がある

ここから、対処方法を考えていきます。

固定IPアドレスにする?

IPアドレスではアクセスできています。

そのため、今後は 192.168.0.26 のようなIPアドレスで接続する方法もあります。

ただし、通常IPアドレスはWi-Fiルーターから自動的に割り振られるため、再起動や接続状況によって変わることがあります。

毎回Raspberry Pi Zero WHを起動するたびにIPアドレスを調べて接続するのは、少し大変です。

IPアドレスが変わらないように、固定IPアドレスにする方法もあります。

ただ、Wi-Fiルーターが自動で管理してくれているIPアドレスを自分で固定すると、管理することが増えます。

たとえば、

  • このアドレスはRaspberry Pi用に空けておく
  • 他の機器と重ならないようにする
  • ルーターの設定も確認する

といったことを考える必要があります。

特別な目的があって固定IPアドレスにするならよいのですが、今回のように「名前解決の不具合を回避したいだけ」で固定IPにするのは避けたい回避策に感じました。

そこで、他の方法も調べてみました。

Bonjour(ボンジュール)をインストールする?

Windowsから raspberrypi.local に接続する方法として、Bonjour(ボンジュール)をインストールするという情報もありました。

Bonjourは、Appleが開発したゼロコンフィギュレーション技術の実装で、同じLAN内の機器を名前で見つけるために使われます。

iTunesなどに付属していたBonjourを入れると、Windowsでも .local の名前解決ができるという情報があります。

ただ、常駐するサービスを追加することになります。

パソコンが遅くなったという話も見かけたので、ここではいったんBonjourを入れずに、ほかの方法を探しました。

WindowsでmDNSがサポートされている?

raspberrypi.local のような名前は、mDNSという仕組みで見つけています。

mDNSは、同じネットワーク内の機器を、DNSサーバーを用意しなくても名前で見つけられる仕組みです。

調べてみると、Windows 10でもmDNSに関する情報がありました。

ただ、Windows 10のバージョンによって動作が違うようで、Version 1803にはmDNSが実装されているが、不具合があるという情報がありました。

しかも、Windows10 Version 1803にBonjour(ボンジュール)を入れると、不具合がたくさん出て大変なことになってしまうそうです。

Windowsのバージョンを確認してみます。

Windowsの左下にあるスタートボタンをクリックし、次の順番で確認できます。

[設定] → [システム] → [バージョン情報]
Windowsの設定画面でWindows 10のバージョン情報を確認しているスクリーンショット

確認したら、まさにWindows10 Version 1803でした。

あぶない、あぶない。Bonjourをすぐ入れなくてよかったです。

Windows Updateで解決

Windows 10 Version 1809では、mDNSまわりが改善されているようだったので、Windows Updateを実行しました。

更新はかなり大きく、通信環境の影響もあって3時間くらいかかりました。

更新後、もう一度コマンドプロンプトで確認します。

ping raspberrypi.local

すると、今度は無事に応答が返ってきました。

Tera Termでも、raspberrypi.local で接続できるようになりました。

やっと解決です。

現在の環境で読むときの補足

この記事の内容は、Windows 10 Version 1803で raspberrypi.local に接続できなかったときの調査記録です。

現在のWindows 10やWindows 11では、mDNSや名前解決まわりの挙動が変わっている場合があります。

また、Raspberry Pi OSやTera Termの画面、初期設定方法も変わっている可能性があります。

ただ、接続できないときの切り分け方は今でも役立ちます。

特に、

  • IPアドレスでは通信できるか
  • raspberrypi.local では通信できるか
  • Wi-Fiにはつながっているか
  • Windows側の名前解決で止まっていないか

を分けて確認すると、原因を探しやすくなります。

まとめ

WindowsからRaspberry Pi Zero WHへTera Termで接続しようとして、「無効なホスト」と表示されたときの確認方法を紹介しました。

今回の流れでは、次のように切り分けました。

  1. Tera Termで raspberrypi.local に接続できない
  2. コマンドプロンプトでRaspberry PiのIPアドレスを調べる
  3. IPアドレスではpingが通ることを確認する
  4. raspberrypi.local ではpingが通らないことを確認する
  5. 名前解決の問題を疑う
  6. Windowsのバージョンを確認する
  7. Windows Updateで改善するか試す

Raspberry Pi Zero WHがWi-Fiにつながっていないのか、Windows側で名前解決できていないのかを分けて考えると、原因を見つけやすくなります。

エラーが出ると焦りますが、ひとつずつ確認していけば、どこで止まっているのかが見えてきます。

Raspberry Pi Zero WHの初期設定はこちらです。

Raspberry Pi Zero WHの環境設定はこちらです。

ラズベリーパイの概要はこちらです。

制作ノート全体はこちらです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次