ネットワークコマンド入門 - ip/ifconfigで接続状態を確認する

ネットワークコマンド入門 - ip/ifconfigで接続状態を確認する

この記事でできるようになること

  • `ip a` / `ip link` / `ip route` で自分の接続状態を確認できる
  • 「つながらない」をリンク → IP → 経路 → 到達性 → 名前解決の順に切り分けられる
  • `ifconfig` などの旧コマンドを `ip` / `ss` に読み替えられる

前提知識(先に読むと理解しやすい記事)

この記事で解決できること

  • ipifconfig使い分けと違い が分かる
  • 「ネットにつながらない」を どこで切れているか順に切り分け できる
  • IPアドレス・リンク・経路・到達性を 確認する型 が身につく

用語の整理(この記事で使う言葉を先に定義します)

  • インターフェース: ネットワークの出入口となる装置。eth0enp0s3 のような名前が付きます。「NIC」「ネットワークアダプタ」も同じものを指します
  • リンク: ケーブルや無線がつながっているか、という物理レベルの状態です。「物理層」「L1」とも呼びます
  • 経路(ルーティング): データをどこ宛てに送り出すかの道順です。「ルート」「経路表」「ルーティングテーブル」も同じ意味で使われます
  • デフォルトゲートウェイ: 自分のネットワークの外へ出るときの出口となる機器です。多くの環境ではルータがこれにあたります
  • 到達性: 相手までデータが実際に届くかどうかです。英語では reachability と書きます
  • 名前解決(DNS): example.com のような名前を IP アドレスに変換する仕組みです
  • iproute2 / net-tools: ip コマンドを提供するパッケージが iproute2 です。ifconfig を提供する古いパッケージが net-tools です

結論(実務の型)

  • IPアドレスを見るなら ip aifconfig の後継)
  • 切り分けは下から上:リンク → IP → 経路 → 到達性 → 名前解決 の順
  • ifconfig が「command not found」でも壊れていない。ip を使えばよい

前提(対象環境)

  • OS:Ubuntu / RHEL 系など一般的な Linux
  • iproute2ip コマンド)は標準インストール済み
  • 一部コマンドは sudo または管理権限が必要

ip と ifconfig は何が違うのか?

ifconfig は旧 net-tools パッケージに付属する古いコマンドです。現在は非推奨で、新しい環境には最初から入っていないことも多いコマンドです。後継が iproute2 パッケージの ip コマンドです。ip は IPアドレス・リンク・経路をすべて 1 つのコマンドで扱えます。新しい環境では ip を使ってください。

項目 ifconfig(net-tools) ip(iproute2)
ステータス 非推奨・保守停止 現行・推奨
デフォルト導入 多くのモダン環境で未導入 標準導入
扱える範囲 IP・リンクのみ IP・リンク・経路・他
複数IP/サブIF 表示が不完全 正確に表示

ifconfigcommand not found になるのは故障ではありません。net-tools が入っていないだけです。sudo apt install net-tools で導入できますが、まず ip を使うのが正攻法です。

IPアドレスはどう確認するのか?

ip a で全インターフェースのIPアドレスを確認します。ip aip addr show の短縮形です。ifconfig に慣れているなら ifconfig 単体でも同じ情報が見られます。まずはここで自分のIPを把握してください。

$ ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.20/24 brd 192.168.1.255 scope global eth0

読みどころ:

  • eth0 … インターフェース名(環境により enp0s3 等)
  • inet 192.168.1.20/24 … 割り当てられた IPv4 アドレスです。末尾の /24 はサブネットの広さを表し、この場合は 192.168.1.0192.168.1.255 が同じネットワークになります
  • UP … OS 側でインターフェースが有効になっています
  • LOWER_UP … 物理的なリンクがつながっています

特定インターフェースだけ見るなら次のとおり。

$ ip addr show eth0

ifconfig での同等操作:

$ ifconfig
$ ifconfig eth0

ip link でリンクの状態を確認します。ここで見るのはケーブル接続と、インターフェースが有効か無効かの 2 点です。IPアドレスが付いていても state DOWN なら通信できません。「つながらない」ときはまずここを見てください。

$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP ...
  • state UP … リンク有効。state DOWN なら無効
  • LOWER_UP が無い … ケーブル未接続・対向機器側の問題を疑う

インターフェースを手動で有効/無効化する(要管理権限):

$ sudo ip link set eth0 up
$ sudo ip link set eth0 down

経路(ルーティング)はどう確認するのか?

ip route でデフォルトゲートウェイと経路表を確認します。IPアドレスが正しくても、ゲートウェイが無ければ外部には出られません。「LAN 内は通るのに外部に出られない」ときの定番チェックポイントです。

$ ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20
  • default via 192.168.1.1 … デフォルトゲートウェイ。これが無い=外部に出られない
  • 2行目 … 同一サブネット宛は直接配送

特定宛先への経路を引くなら ip route get が便利。

$ ip route get 8.8.8.8

到達性はどう確認するのか?

ping で相手まで実際にデータが届くかを確認します。-c は送る回数の指定です。付けないと止まらずに送り続けます。ゲートウェイ → 外部IP → ドメイン名の順に試してください。この順番で試すと、どこで切れているかが分かります。

$ ping -c 4 192.168.1.1
$ ping -c 4 8.8.8.8
$ ping -c 4 example.com

切り分けの読み方:

  • ゲートウェイにも届かない … リンクか経路の問題(ip link / ip route へ戻る)
  • 8.8.8.8 は OK だが example.com は NG … 名前解決(DNS)の問題
  • すべて NG … 経路・ファイアウォール・ISP 側を疑う

ping100% packet loss でも、ネットワークが壊れているとは限りません。相手が ICMP(ping が使う通信の種類)を遮断しているだけのこともあります。Web サーバが相手なら curl -I https://example.com も実行してください。HTTP レベルで届いているかを併せて確認できます。

つながらない時はどう切り分けるのか?

下の層から順に潰すのが鉄則です。リンク → IP → 経路 → 到達性 → 名前解決の順に確認してください。最初に失敗した層が原因です。上の層から見ると遠回りになります。

  1. リンクip link showstate UP
  2. IPip a → IPアドレスが付与されているか
  3. 経路ip routedefault via ... があるか
  4. 到達性ping -c 4 <ゲートウェイ>ping -c 4 8.8.8.8
  5. 名前解決ping -c 4 example.com が NG なら DNS を疑う
# 上から順に1コマンドずつ
ip link show
ip a
ip route
ping -c 4 8.8.8.8
ping -c 4 example.com

やりがちな失敗

  • いきなりドメイン名で ping して「ネットが死んだ」と誤判断(実は DNS だけ)
  • IPが付いているのを見て安心し、ゲートウェイ未設定を見落とす
  • SSH 越しに ip link set ... down を実行して自分の接続を切る

旧コマンドとの対応表(チートシート)

ifconfig / route / netstat に慣れている場合も、ip / ss での同等操作を覚えれば移行できます。下の表を手元に置いてください。ssnetstat の後継で、同じく iproute2 が提供します。

やりたいこと 旧(net-tools) 新(iproute2)
IPアドレス確認 ifconfig ip a
リンク有効化 ifconfig eth0 up ip link set eth0 up
経路表表示 route -n ip route
ARP テーブル arp -n ip neigh
待ち受けポート netstat -tlnp ss -tlnp
# コピペ用:状態把握ワンライナー
ip -br a && ip route && ss -tlnp

ip -br a-br = brief)はインターフェースとIPを1行ずつ簡潔表示。一覧把握に最適。

次に読む

この記事を共有