Linux route コマンド
一、route コマンド概要
route コマンドは、Linux システムで IP ルーティングテーブルを表示・操作するための強力なツールです。ネットワーク設定の基本コマンドとして、管理者は次のことができます。
- 現在のルーティングテーブル情報の表示
- 静的ルートの追加/削除
- 既存のルーティングルールの変更
- ネットワークパケットの転送経路の管理
基本構文
route [选项] [操作] [目标] [命令参数]
二、ルーティングテーブルの基本概念
1. ルーティングテーブルとは
ルーティングテーブルは、オペレーティングシステムのカーネルが管理するデータ構造であり、ネットワークパケットが送信元アドレスから宛先アドレスへどのように転送されるかを決定します。次のように例えることができます。
「都市交通ナビゲーションシステム:目的地に行きたいとき、どの道が最も速くて効率的かをシステムが教えてくれます」
2. ルーティングテーブルの主要フィールド
を使ってroute -nルーティングテーブルを表示すると、以下の重要な列が表示されます。
| 列名 | 説明 | 値の例 |
|---|---|---|
| Destination | 宛先ネットワークまたはホスト | 192.168.1.0 |
| Gateway | ネクストホップゲートウェイ | 192.168.1.1 |
| Genmask | ネットマスク | 255.255.255.0 |
| Flags | ルーティングフラグ | U (ルートが有効) |
| Metric | ルーティングコスト | 0 |
| Iface | 出力インターフェース | eth0 |
三、route コマンドのよく使う操作
1. ルーティングテーブルの表示
例
route -n
# 出力例:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
2. ルートの追加
例
route add -host 192.168.1.100 dev eth0
# ネットワークへのルートを追加
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# デフォルトゲートウェイを追加
route add default gw 192.168.1.1
3. ルートの削除
例
route del -net 192.168.2.0 netmask 255.255.255.0
# デフォルトゲートウェイを削除
route del default gw 192.168.1.1
四、コマンドオプションの詳細
route コマンドは以下の一般的なオプションをサポートしています:
| オプション | 説明 |
|---|---|
| -n | アドレスを数値形式で表示(ホスト名を解決しない) |
| -e | netstat 形式でルーティングテーブルを表示 |
| -v | 詳細な操作情報を表示 |
| -A family | アドレスファミリを指定(inet, inet6 など) |
| -F | カーネル FIB ルーティングテーブルを表示 |
| -C | ルーティングキャッシュを表示 |
特別なコマンドパラメータ:
add:ルートを追加del:ルートを削除-host:特定のホストに対する操作-net:ネットワーク全体に対する操作gw:ゲートウェイを指定dev:ネットワークインターフェースを指定
五、実際の応用シナリオ
シナリオ1:複数NICのルーティング設定
サーバーに複数のネットワークインターフェースがある場合、異なるネットワークの出口を指定する必要があります:
例
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1
シナリオ2:VPNルーティング設定
VPN に接続した後、特定のルートを追加する必要があります:
例
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0
シナリオ3:一時的なルーティングテスト
例
route add -host 8.8.8.8 gw 192.168.1.254
ping 8.8.8.8 # ルートが有効かどうかをテスト
route del -host 8.8.8.8 # テスト完了後に削除
六、ルーティングの永続化設定
route コマンドで追加したルートは再起動後に失われます。永続的に有効にするには:
1. Debian/Ubuntu システム
編集/etc/network/interfaces:
例
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2
2. RHEL/CentOS システム
ルーティング設定ファイルを作成/etc/sysconfig/network-scripts/route-eth0:
10.0.0.0/8 via 192.168.1.2
七、よくある問題のトラブルシューティング
1. ルートが有効にならない場合の確認手順

2. 典型的なエラーの解決
エラー1:"SIOCADDRT: Network is unreachable"
- 原因:ゲートウェイがローカルネットワークの直接ブロードキャストドメイン内にない
- 解決:まずゲートウェイアドレスに ping が通ることを確認する
エラー2:"RTNETLINK answers: File exists"
- 原因:既に存在するルートを追加しようとしている
- 解決:古いルートを削除してから追加するか、または使用する
replaceオプション
八、代替コマンド:ip route
現代の Linux システムでは推奨されていますip routeコマンド:
例
ip route show
# ルートを追加
ip route add 10.0.0.0/8 via 192.168.1.2
# ルートを削除
ip route del 10.0.0.0/8
とはいえip routeより強力ですが、routeコマンドは、そのシンプルさと直感性により今でも広く使用されています。
このガイドを通じて、route コマンドの核心的な使い方を習得できたはずです。実際の環境でこれらのコマンドを練習し、ルーティングの変化がネットワーク接続に与える影響を観察することをお勧めします。複雑なルーティング問題に遭遇した場合は、次のツールと組み合わせてtracerouteとpingなどのツールを使用して総合的な診断を行えます。
Linux コマンド大全