※この記事は公開から時間が経っているため、現在の環境とは内容が異なる場合があります。
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

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

「無効なホスト」と出ると、Raspberry Pi側が起動していないのか、Wi-Fi設定を間違えたのか、Windows側の問題なのか、すぐには分かりません。
まずは、原因を切り分けていきます。
接続できないときの確認手順
「無効なホスト」が出たときは、いきなり設定を全部やり直すより、順番に確認すると原因を見つけやすいです。

確認したい流れは、次の通りです。
- Raspberry Piの電源とWi-Fi接続を確認する
- WindowsからIPアドレスを調べる
- IPアドレスで通信できるか確認する
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では接続できない- 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の左下にあるスタートボタンをクリックし、次の順番で確認できます。
[設定] → [システム] → [バージョン情報]

確認したら、まさに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で接続しようとして、「無効なホスト」と表示されたときの確認方法を紹介しました。
今回の流れでは、次のように切り分けました。
- Tera Termで
raspberrypi.localに接続できない - コマンドプロンプトでRaspberry PiのIPアドレスを調べる
- IPアドレスではpingが通ることを確認する
raspberrypi.localではpingが通らないことを確認する- 名前解決の問題を疑う
- Windowsのバージョンを確認する
- Windows Updateで改善するか試す
Raspberry Pi Zero WHがWi-Fiにつながっていないのか、Windows側で名前解決できていないのかを分けて考えると、原因を見つけやすくなります。
エラーが出ると焦りますが、ひとつずつ確認していけば、どこで止まっているのかが見えてきます。
Raspberry Pi Zero WHの初期設定はこちらです。

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

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

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


