【解決】 Network is unreachable の解決方法と原因 | Linux/Network トラブルシューティング

突然「Network is unreachable」というエラーメッセージが表示され、インターネットやローカルネットワークに接続できなくなってお困りでしょうか? ご心配いりません。このエラーはネットワークの「経路」に関する問題であり、設定ミスや一時的な不具合が原因であることが多く、多くの場合、比較的簡単な手順で解決できます。

この記事では、Windowsユーザーのあなたがこの問題を迅速に解決するための具体的な手順を、PowerShell/Cmdコマンドを交えて詳しく解説します。結論から先に述べ、すぐに試せる解決策からご紹介しますので、安心して読み進めてください。

1. Network is unreachable とは?(概要と緊急度)

「Network is unreachable」は直訳すると「ネットワークに到達できません」という意味です。これは、あなたがアクセスしようとしている目的地(Webサイト、ファイルサーバー、別のPCなど)に対して、現在のPCが「どのようにアクセスすれば良いか」の経路(ルーティング情報)を見つけられない、またはその経路が壊れていることを示します。

このエラーが表示されると、ほとんどのネットワーク通信が停止してしまいますので、緊急度は高いと言えます。しかし、物理的な故障よりも設定の問題であることが多いため、焦らず以下の解決策を一つずつ試してみましょう。

2. 【最速】今すぐ試すべき解決策

まず、最も簡単で効果的な可能性のある解決策から試していきましょう。以下の手順を上から順に実行してみてください。

解決策1:ネットワークアダプター(NIC)の状態を確認し、有効にする

最も基本的なことですが、ネットワークアダプター(有線LANカードやWi-Fiアダプター)が無効になっている、または物理的に接続されていないためにこのエラーが発生することがあります。まずは、アダプターの状態を確認し、もし無効になっていたら有効にしましょう。

GUIでの確認・有効化:

  1. Windowsの検索バーに「コントロールパネル」と入力し、開きます。
  2. 「ネットワークとインターネット」>「ネットワークと共有センター」>「アダプターの設定の変更」をクリックします。
  3. ネットワーク接続の一覧が表示されます。使用しているネットワークアダプター(例: イーサネット、Wi-Fi)が「無効」になっていないか確認します。
  4. もし無効になっている場合は、そのアダプターを右クリックし、「有効にする」を選択します。

PowerShellでの確認・有効化:

PowerShellを使って、現在のアダプターの状態を確認し、必要であれば有効化することもできます。

# すべてのネットワークアダプターの状態を確認
Get-NetAdapter | Format-Table -AutoSize -Property Name, Status, LinkSpeed

# 例: "イーサネット"という名前のアダプターが無効になっている場合、以下のコマンドで有効化
# Enable-NetAdapter -Name "イーサネット"
# (ご自身の環境のアダプター名に合わせて変更してください)

解決策2:IPアドレス設定とデフォルトゲートウェイを確認する

ネットワークアダプターが有効な場合、次に重要なのはIPアドレスの設定、特に「デフォルトゲートウェイ」の設定です。デフォルトゲートウェイは、あなたのPCがローカルネットワーク外の通信(インターネットなど)をする際の「出口」を示す重要な情報です。これが間違っている、または設定されていない場合、「Network is unreachable」エラーが発生します。

以下のコマンドで現在のネットワーク設定を確認し、特に「デフォルト ゲートウェイ」の項目を注意して見てください。

ipconfig /all

表示された結果で、使用しているネットワークアダプターの項目を確認します。

  • 「IPv4 アドレス」が期待通りの範囲か(例: 192.168.x.x, 10.x.x.x)。
  • 「サブネット マスク」が正しいか。
  • 「デフォルト ゲートウェイ」のIPアドレスが正しく表示されているか。

もしデフォルトゲートウェイが空欄であったり、明らかに間違ったIPアドレスが表示されている場合は、以下のいずれかの方法を試してみてください。

  • DHCPサーバーから再取得する:
    ipconfig /release
    ipconfig /renew
    

    このコマンドでIPアドレスやデフォルトゲートウェイが自動的に再取得され、問題が解決することがあります。

  • 静的IP設定の場合:もし手動でIPアドレスを設定している場合は、「アダプターの設定の変更」から使用しているアダプターのプロパティを開き、「インターネット プロトコル バージョン 4 (TCP/IPv4)」のプロパティで、正しいデフォルトゲートウェイのIPアドレスが設定されているか確認してください。

解決策3:ルーティングテーブルを確認する

「Network is unreachable」の直接的な原因は、ルーティングテーブルに目的地までの経路情報がないことです。特に、インターネットなど外部への通信に必要な「デフォルトルート(0.0.0.0宛てのルート)」が欠落している場合にこのエラーが発生します。

以下のコマンドで、現在のルーティングテーブルを確認できます。特に「ネットワーク宛先 0.0.0.0」の項目を探し、それが正しいデフォルトゲートウェイを指しているか確認してください。

route print -4

または、PowerShellでより見やすく確認することも可能です。

Get-NetRoute | Format-Table -AutoSize

もしデフォルトルート(宛先が 0.0.0.0/0 のルート)が存在しない、または誤ったゲートウェイを指している場合は、上記の ipconfig /renew やPCの再起動で解決することが多いです。

(上級者向け) 一時的にデフォルトルートを追加する例:

通常は推奨されませんが、一時的にデフォルトルートを手動で追加することも可能です。正しいゲートウェイIPと、ipconfig /all で確認できるインターフェースIDが必要です。

# route ADD 0.0.0.0 MASK 0.0.0.0 [正しいゲートウェイIP] METRIC 20 IF [インターフェースID]
# 例: route ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1 METRIC 20 IF 12
# (192.168.1.1 はあなたのルーターのIPアドレス、12 は ipconfig /all で確認できるインターフェースのIDです)
# このコマンドで追加したルートはPCを再起動すると消去されます。

解決策4:PCとルーターの再起動

ネットワーク関連のトラブルシューティングにおいて、最も単純でありながら非常に効果的なのが、関係する機器の再起動です。PCの一時的な設定エラーや、ルーターやモデムの一時的な不具合が原因で「Network is unreachable」が発生している可能性があります。

  1. PCをシャットダウンします。
  2. 可能であれば、モデムとルーターの電源を一度抜き、1分ほど待ってから再度電源を入れ直します。
  3. モデムとルーターが完全に起動するまで数分待ちます。
  4. PCの電源を入れ直し、ネットワーク接続が回復したか確認します。

3. Network is unreachable が発生する主要な原因(複数)

上記の解決策を試しても問題が解決しない場合、または今後のトラブルシューティングのために、このエラーが発生する主な原因を理解しておきましょう。

  • ネットワークアダプターの無効化または故障:物理的なケーブル抜け、Wi-Fiのオフ、ドライバの問題、またはアダプター自体の故障が原因で、ネットワークに接続できなくなっている。
  • IPアドレス設定の誤り:特に「デフォルトゲートウェイ」のIPアドレスが間違っているか、設定されていない場合に発生します。DHCPサーバーが正しくIPアドレスを配布できていない可能性もあります。
  • ルーティングテーブルの欠落または不正:OSのルーティングテーブルに、目的のネットワークやデフォルトゲートウェイへの経路情報が正しく登録されていない。これは一時的な不具合や、静的ルーティング設定の誤りによって発生することがあります。
  • ファイアウォールによるブロック:Windows Defender Firewallやサードパーティ製ファイアウォールが、特定のネットワーク通信を意図せずブロックしている場合があります。ただし、これは通常「Unreachable」ではなく「Connection refused」や「Timeout」といったメッセージになることが多いです。
  • 物理的な接続問題:LANケーブルの断線、ルーターやスイッチのポート故障、またはネットワーク機器(ルーター、スイッチ、モデム)自体の故障が原因で、そもそもPCから物理的にネットワークに到達できない状態。

4. Linux/Networkで恒久的に再発を防ぐには

Windows環境での「Network is unreachable」エラーを再発させないための対策に加え、もしあなたがLinuxサーバーや他のネットワーク機器を管理している場合、そちら側での対策も重要です。これは、Windowsクライアントからそれらの機器に接続する際に同じエラーに遭遇する可能性を減らすためです。

Windows環境での対策:

  • ネットワークアダプタードライバの最新化と安定性確保:Windows Updateを定期的に適用し、必要に応じてメーカーから最新のネットワークアダプタードライバをインストールしてください。古いドライバは予期せぬ問題を引き起こすことがあります。
  • 信頼できるIPアドレス設定:DHCPを使用している場合は、DHCPサーバー(通常はルーター)が常に正しくIPアドレスとデフォルトゲートウェイを配布していることを確認します。静的IPアドレスを設定する場合は、誤りのないよう慎重に行い、ドキュメント化しておきましょう。
  • Windows Defender Firewall設定の確認:不必要なブロック設定が行われていないか定期的に確認し、必要な通信が許可されていることを確認してください。

Linuxサーバー/ネットワーク機器での対策 (管理者向け):

あなたがLinuxサーバーやネットワーク機器を管理しており、Windowsクライアントからそれらに接続する際に「Network is unreachable」エラーに遭遇する場合、以下の点を確認してください。

  • ルーティング設定の永続化:Linuxサーバーやルーターなどのネットワーク機器でIPアドレスやルーティング設定を行う際は、再起動後も設定が維持されるように、適切な設定ファイル(例: /etc/network/interfaces, /etc/sysconfig/network-scripts/)やコマンド(nmcli, ip コマンドの永続化設定)で恒久化されていることを確認してください。

    例 (Ubuntu/Debian系):

    # /etc/network/interfaces の設定例
    # auto eth0
    # iface eth0 inet static
    #     address 192.168.1.100
    #     netmask 255.255.255.0
    #     gateway 192.168.1.1
    
  • ネットワーク機器の安定運用:ルーターやスイッチ、ファイアウォールといったネットワーク機器は、安定した電源供給と適切な冷却を確保し、定期的にファームウェアを最新の状態に保つことで、不測のトラブルを防ぎます。
  • ネットワーク監視ツールの導入:ZabbixやNagiosなどのネットワーク監視ツールを導入し、サーバーやネットワーク機器の到達性を常にチェックすることで、問題発生時に早期に検知し対処することが可能になります。

「Network is unreachable」エラーは、ネットワークの基本的な経路の問題を指し示しています。この記事で紹介した手順を一つずつ確認することで、ほとんどの問題は解決できるはずです。落ち着いてトラブルシューティングにあたってください。