🤖

【Linux】ネットワーク障害発生時に確認すべきコマンド①

に公開

Linux サーバで通信障害が起きたとき、サーバ自身が正常にネットワークへ参加できているか を確認する場合がある。

本記事では、内部確認で使用するコマンドをで整理する。


1) ip link show

目的

NIC(物理/仮想)の状態を確認する。
リンクが UP か、ケーブル物理リンクが生きているか、MTU・MAC が正しいかを調べる。

概要

iproute2 の基本コマンドで、NICの「管理状態」と「物理状態」を確認する。

主なオプション

コマンド 内容
ip link show 全インタフェースを表示
ip link show dev eth0 指定インタフェースのみ表示

実行例

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/ether aa:bb:cc:dd:ee:ff

確認ポイント

  • UP:OS が NIC を有効にしている
  • LOWER_UP:ケーブルが接続されている
  • MTU が不正でないか(MTU mismatch は断続要因)
  • MAC アドレスが意図通りか
  • インタフェース名が正しいか(例:ens192 など)

2) ethtool <dev>

目的

物理リンク(ケーブル・スイッチ)側の状態を確認する。
速度、デュプレックス、リンク検出の有無、エラー状況を見る。

概要

NIC ハードウェアとドライバの状態、リンク統計を表示するコマンド。

主なオプション

コマンド 内容
ethtool eth0 リンク速度・デュプレックス・リンク有無
ethtool -i eth0 ドライバ名・バージョン
ethtool -S eth0 パケットエラー統計

正常例

Link detected: yes
Speed: 1000Mb/s
Duplex: Full

確認ポイント

  • Link detected: yes → ケーブル・スイッチ正常
  • Speed / Duplex が期待値と一致しているか
  • Auto-negotiation が意図通りか
  • RX/TX error の増加がないか
  • ドライバが古くないか(既知不具合に注意)

3) ip addr show

目的

IP アドレスが正しく割り当てられているかを確認する。
リンクローカル(DHCP 失敗)も検知できる。

概要

インタフェースに付与された IPv4/IPv6 アドレスを表示する。

主なオプション

コマンド 内容
ip addr show 全アドレス表示
ip addr show dev eth0 指定 NIC のみ

異常例(DHCP失敗)

inet 169.254.5.1/16 scope link

確認ポイント

  • 想定したサブネットか
  • 169.254.x.x → DHCP 失敗
  • IPv6 が意図せず優先されていないか
  • 意図しない secondary IP がついていないか

4) ip route

目的

デフォルトゲートウェイの有無を確認し、外部に出られない原因を切り分ける。

概要

カーネルのルーティングテーブルを表示する基本コマンド。

主なオプション

コマンド 内容
ip route ルート一覧を表示

異常例(デフォルトなし)

192.168.1.0/24 dev eth0

確認ポイント

  • default via <gateway> があるか
  • 同一ネットワークに重複ルートがないか
  • metric(優先度)による意図しないルートが選択されていないか

5) ss -tlnp

目的

どのプロセスがどのポートを LISTEN しているかを確認する。

概要

高速版 netstat。LISTEN状態の確認で最も使われる。

主なオプション

オプション 内容
-t TCP のみ
-l LISTEN のみ
-n 名前解決しない
-p プロセス名と PID

実行例

LISTEN 0 128 0.0.0.0:80 users:(("nginx",pid=1234))

確認ポイント

  • 期待するポートが LISTEN しているか
  • 0.0.0.0:80 → 外部アクセス可
  • 127.0.0.1:80 → ローカルのみ
  • プロセスが正しいか
  • ポート競合(別プロセスが掴んでいないか)

6) lsof -i:<port>

目的

特定ポートを占有しているプロセスを確認する。

概要

オープンファイル一覧を表示するツール。ソケットも「ファイル」として扱う。

主なオプション

コマンド 内容
lsof -i:80 port 80 を使うプロセスを表示

確認ポイント

  • root で動くべきプロセスが一般ユーザで動いていないか
  • プロセスが短時間で再起動(クラッシュ)していないか
  • systemctl status でサービスを追跡できる

7) journalctl

目的

sshd / nginx / systemd サービスのログを確認する。

概要

systemd 管理下のログを時系列で閲覧できる。

主なオプション

コマンド 内容
journalctl -u sshd -n 200 サービスの直近ログ
journalctl -f リアルタイム表示

確認ポイント

  • 起動失敗(Exit code)
  • ポート bind 失敗
  • 設定ファイルパースエラー
  • Restart ループの有無

8) iptables -L -v / firewall-cmd

目的

ローカルファイアウォールでパケットがブロックされていないか確認する。

概要

iptables または firewalld の設定を確認する。

iptables の主なコマンド

コマンド 内容
iptables -L -n -v チェインルールとヒット数

firewalld の主なコマンド

コマンド 内容
firewall-cmd --list-all 現在アクティブな zone

確認ポイント

  • INPUT チェインが DROP/REJECT になっていないか
  • zone が意図しないものになっていないか
  • ufw が入っている場合は ufw 側設定も確認

9) ip neigh

目的

L2(同一セグメント)の隣接ノードとの到達性を確認する。
ARP の解決状態を見ることで、L2 の異常を即座に検知できる。

概要

ARP テーブルの一覧。IP ↔ MAC の学習状態を確認できる。

実行例

192.168.1.1 dev eth0 lladdr aa:bb:cc:dd:ee:ff REACHABLE

確認ポイント

  • ゲートウェイの MAC が表示されているか

  • 状態の意味

    • REACHABLE:正常
    • STALE:一定期間通信なし(正常範囲)
    • INCOMPLETE:ARP 解決できない → L2 問題
  • VLAN / 仮想スイッチで隔離されていないか


参考リンク


Discussion