【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 / 仮想スイッチで隔離されていないか
参考リンク
- ip link
https://man7.org/linux/man-pages/man8/ip-link.8.html - ethtool
https://man7.org/linux/man-pages/man8/ethtool.8.html - ip address
https://man7.org/linux/man-pages/man8/ip-address.8.html - ip route
https://man7.org/linux/man-pages/man8/ip-route.8.html - ss
https://man7.org/linux/man-pages/man8/ss.8.html - netstat
https://man7.org/linux/man-pages/man8/netstat.8.html - lsof
https://man7.org/linux/man-pages/man8/lsof.8.html - iptables
https://man7.org/linux/man-pages/man8/iptables.8.html - firewalld
https://firewalld.org/ - ip neigh
https://man7.org/linux/man-pages/man8/ip-neighbour.8.html
Discussion