【LinuC 201試験】2.03 ネットワークの問題解決のまとめ|Linux初学者向け解説【ping・traceroute・ss・nc・nmap】

※本ページはプロモーションが含まれています

こんにちは!いつもブログを読んでいただき、ありがとうございます。

今回は、主題2.03「ネットワークの問題解決」について、試験に出るポイントを丁寧に解説していきます!

「繋がらない!でもどこから調べればいいかわからない……」というのは、Linuxを学び始めた頃によくある悩みですよね。この記事では、コマンドを1つずつ覚えるだけでなく、「どんなときに何を使うか」という判断の流れごと頭に入れることを目指します。実務でもそのまま使える考え方なので、一緒に押さえていきましょう!

LinuC 201全体の学習ロードマップはこちらにまとめています♪

👉 【LinuC 201】独学合格へのロードマップ!勉強方法と出題範囲の全体像まとめ

主題2.03の前の2記事をまだ読んでいない方は、先にそちらも確認しておくと、この記事がよりスムーズに読めますよ。

👉 2.03 基本的なネットワーク構成のまとめ 👉 2.03 高度なネットワーク構成のまとめ


📋 試験の重要情報と学習のゴール

まずは、この主題で絶対に外せない「キーワード」を確認しましょう。

項目内容
主題番号2.03.3 ネットワークの問題解決
重要度3(5段階中)
頻出キーワードpingtraceroutemtrssnetstatip routedignc(netcat)、nmapjournalctl、ログファイルのパス

重要度3は「試験全体のなかで出題比率が高め」という意味です。コマンドの種類は多いですが、「どんな問題に対してどのコマンドを使うか」のセットで覚えてしまうのが合格への近道です!


1. トラブルシューティングの基本的な考え方

「下の層から上の層へ」の順番で確認する

ネットワーク障害の原因は、OSI参照モデルの下の層(物理・ネットワーク層)から上の層(アプリケーション層)へと順番に確認するのが鉄則です。

【確認する順番】

1️⃣ NICの状態を確認  ← まずここから!
   コマンド: ip link show, ip addr show
   ▶ NICがUPになっているか?IPアドレスは設定されているか?

2️⃣ 同じネットワーク内の疎通を確認
   コマンド: ping <ゲートウェイのIP>
   ▶ 隣のルーターに届くか?

3️⃣ 外部への疎通を確認
   コマンド: ping 8.8.8.8(インターネット上のIP)
   ▶ IPアドレスで外に出られるか?

4️⃣ 名前解決を確認
   コマンド: ping google.com, dig google.com
   ▶ ドメイン名でも繋がるか?(DNS が機能しているか?)

5️⃣ ポート・サービスの確認
   コマンド: ss -tlnp, nc -zv <IP> <ポート>
   ▶ 必要なポートが開いているか?外部からも到達できるか?

★ここがポイント! この順番を頭に入れておくと、「3️⃣はOKなのに4️⃣がNG → DNS の問題」のように原因を素早く絞り込めます。試験でもトラブルの状況を読んで「次に使うコマンドはどれか」を答えさせる問題が出るので、この流れごと覚えてしまいましょう。


2. 疎通確認コマンド|★★★ 最頻出!

ping — 最初に使う基本コマンド

ping は相手のホストにICMPエコーリクエストを送り、応答が返ってくるかを確認するコマンドです。

# 基本的な疎通確認
ping 192.168.1.1

# 指定した回数だけ送信して終了する(Linuxのデフォルトは無限送信)
ping -c 4 192.168.1.1

# 送信間隔を指定する(デフォルトは1秒)
ping -i 0.5 192.168.1.1

📝 確認の順番のコツ ping 127.0.0.1(自分自身)→ ping <ゲートウェイIP>(同一セグメント)→ ping 8.8.8.8(外部IP)→ ping google.com(ドメイン名)の順で試すと問題の切り分けがしやすいです。


traceroute — どこで止まっているかを調べるコマンド

ping で繋がらないとき、どのルーターで止まっているかを調べるのが traceroute です。

# 通信経路を確認する
traceroute 8.8.8.8

# ホスト名解決をせずに数値で表示する(速い・よく使う)
traceroute -n 8.8.8.8

# ICMPを使う(デフォルトはUDP。ファイアウォールで止められにくい)
traceroute -I 8.8.8.8

⚠️ * * * は必ずしも障害ではない! 出力結果の * * * は、そのルーターが応答を返さない設定になっているだけの場合も多く、その先のホップが表示されていれば通信自体は問題ありません。「* * * が出たから障害だ」と判断するのは試験での引っかけパターンです。

📝 tracepath という選択肢も覚えておこう tracepathtraceroute と似た機能を持ちますが、root権限なしで実行できるのが特徴です。traceroute との違いとして試験に出ることがあります。


mtr — ping + traceroute の合体版

mtr は経路上の各ホップの遅延やパケットロスをリアルタイムで継続表示します。一時的なネットワークの不安定さを調査するのに適しています。

# 対話モードで起動する
mtr 8.8.8.8

# レポートモード(一定回数後に終了して結果を表示)
mtr --report -n -c 10 8.8.8.8

📝 試験ポイントtraceroute との違いは「継続してリアルタイムに監視できる点」です。


3. ルーティングの確認|★★☆

「ゲートウェイの設定が正しいか」「目的地への経路があるか」を確認するコマンドです。

# ルーティングテーブルを確認する(新コマンド)
ip route show

# 特定の宛先へのルートを確認する(どのNICを使うか1行で確認できる)
ip route get 8.8.8.8

# ルーティングテーブルを確認する(旧コマンド)
route -n

★ここがポイント! ip route get <IP> は「特定宛先へのルートを1行でピンポイントに確認できる」コマンドとして試験に出やすいです。ip route show との使い分けを覚えておきましょう。


4. 接続状態とポートの確認|★★★

ss — サーバー自身の待ち受け状態を確認する(netstat の後継)

# LISTENしているTCPポートをプロセス名付きで数値表示する(最もよく使う)
ss -tlnp

# すべての接続を表示する
ss -a

# TCPの接続のみ表示する
ss -t

# リスニング状態のみ表示する
ss -l

# プロセス名・PIDも表示する
ss -p

# 数値で表示する(名前解決なし)
ss -n

★ここがポイント! ss -tlnp の各文字は「t=TCP、l=Listen、n=数値(Numeric)、p=プロセス(Process)」に対応しています。英語の頭文字とセットで覚えると忘れにくいですよ。

⚠️ ss にはルーティングテーブルを表示するオプション(-r)はありません。 ip route shownetstat -rn を使いましょう。ひっかけの選択肢に注意してください。


nc(netcat)と nmap — 外部からポートの疎通を確認する(試験頻出!)

ss はサーバー自身の状態を確認するコマンドですが、「クライアント側から本当にそのポートに繋がるか」を確認するのが ncnmap です。どちらもLinuC公式シラバスに明記されている試験頻出ツールです。

# nc(netcat)で特定ポートの疎通を確認する
# -z:データ送信なしでポートの開閉だけ確認する(ゼロI/Oモード)
# -v:詳細を表示する(接続成功/失敗がわかる)
nc -zv 192.168.1.100 80

# 成功時の出力例
Connection to 192.168.1.100 80 port [tcp/http] succeeded!

# 失敗時の出力例
nc: connectx to 192.168.1.100 port 80 (tcp) failed: Connection refused
# nmap で対象ホストの開いているポートをスキャンする
nmap 192.168.1.100

# よく使う出力例
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  closed https
コマンド用途特徴
ss -tlnpサーバー側で自分のポートを確認するサービス名・PIDもわかる
nc -zv <IP> <ポート>クライアント側から特定ポートへの疎通を確認する1ポートずつ手軽に確認
nmap <IP>クライアント側から複数ポートをまとめてスキャンする開いているポートの一覧が取れる

📝 試験ポイント:「ポートスキャンツールはどれか(答え:nmap)」「ポートが開いているか手軽に確認するコマンドはどれか(答え:nc)」という形で問われます。それぞれの使い分けと -z-v オプションの意味をセットで覚えておきましょう。


netstat — 旧コマンド(試験にも出る)

# LISTENしているポートをプロセス名付きで数値表示する
netstat -tlnp

# ルーティングテーブルを数値表示する
netstat -rn

📝 ssnetstat のオプションはほぼ同じです。ただしルーティングテーブルの表示は netstat -rn のみで、ss には対応オプションがありません。


5. ホスト名・名前解決の確認|★★☆

「IPアドレスで繋がるのにドメイン名で繋がらない」場合は、名前解決(DNS)に問題があります。

ホスト名の確認・変更

# ホスト名を確認する
hostname
hostnamectl

# ホスト名を永続的に変更する
hostnamectl set-hostname server01.example.com

DNSの確認コマンド

# ドメイン名をIPアドレスに解決する
dig google.com

# 特定のDNSサーバーに問い合わせる(@ で指定)
dig @8.8.8.8 google.com

# シンプルに確認したい場合
nslookup google.com

# 逆引き(IPアドレスからホスト名を調べる)
dig -x 8.8.8.8

📝 試験ポイントdig @8.8.8.8 google.com@ は「問い合わせ先のDNSサーバーを指定する」記号です。「特定のDNSサーバーで解決できるか確認したい」という場面で使います。

名前解決に関わるファイル

ファイル役割
/etc/hostsIPアドレスとホスト名の手動マッピング(ローカルの電話帳)
/etc/resolv.conf使用するDNSサーバーの設定(nameserver 行)
/etc/nsswitch.conf名前解決の優先順位(hosts: files dns など)

6. ログによる問題調査|★★☆

コマンドで原因が特定できない場合は、ログを確認するのが重要です。

# NetworkManager のログを確認する
journalctl -u NetworkManager

# リアルタイムでログを表示する(-f = follow)
journalctl -u NetworkManager -f

# 今回の起動以降のログを確認する
journalctl -b

# カーネルのネットワーク関連メッセージを確認する
dmesg | grep -i "eth\|enp\|network\|link"

ログファイルのパス(試験頻出!)

ファイル対象OS内容
/var/log/messagesRHEL系システム全般のログ
/var/log/syslogDebian/Ubuntu系システム全般のログ
/var/log/secureRHEL系SSH等の認証ログ
/var/log/auth.logDebian/Ubuntu系SSH等の認証ログ

★ここがポイント! RHEL系とDebian/Ubuntu系でログファイルのパスが違う点は非常によく問われます。どちらの環境でも統合的に使えるのが journalctl です。この3つの対応関係をセットで覚えておきましょう。


試験で狙われる!引っかけポイントまとめ 💣

最後に、「ここ、引っかかりそう!」と感じたパターンをまとめました。試験直前に見直してみてくださいね。

#間違いパターン正しい理解
1traceroute* * * = 必ず障害❌ ファイアウォールがICMPをブロックしているだけの場合も多い。その先が表示されているなら問題なし
2ss コマンドでルーティングテーブルを確認するss にルーティング表示機能はない。ip route shownetstat -rn を使う
3ドメイン名で繋がらない = ネットワーク障害ping 8.8.8.8 が通るなら DNS の問題。/etc/resolv.confdig で確認する
4tracepath は root 権限が必要tracepath は root 権限なしで実行できる。root が必要なのは traceroute
5nc -zv-z はゼロ(数字)のオプション-z は「zero-I/O mode(データ送信なしでポートの開閉だけ確認する)」の意味

✨ 主題2.03 全体の重要コマンド総まとめ

主題2.03の3記事分をまとめて復習できる一覧です。試験直前の確認にどうぞ!

カテゴリコマンド説明
インターフェースip addr showIPアドレスの確認
ip link set enp1s0 up/downNICのON/OFF
ifconfigIPアドレスの確認(旧)
ルーティングip route showルーティングテーブルの確認
ip route get <IP>特定宛先へのルートを確認
route -nルーティングテーブルの確認(旧)
NetworkManagernmcli con show接続一覧の確認
nmcli con modify "接続名" ...接続設定の変更
nmcli con up "接続名"接続の有効化・設定の反映
ボンディングcat /proc/net/bonding/bond0ボンドの状態確認
チーミングteamctl team0 stateチームの状態確認
疎通確認ping -c 4 <ホスト>疎通確認(4回送信)
traceroute -n <ホスト>経路確認(数値表示)
tracepath <ホスト>経路確認(root不要)
mtr <ホスト>経路+遅延のリアルタイム確認
接続状態ss -tlnpLISTENポートとプロセスの確認(サーバー側)
nc -zv <ホスト> <ポート>外部からポートの疎通確認
nmap <ホスト>ポートスキャン
netstat -rnルーティングの確認(旧)
パケット解析tcpdump -i enp1s0 -w fileパケットキャプチャ
iptraf-ng -i enp1s0トラフィック監視
名前解決dig google.comDNS確認
dig @8.8.8.8 google.com特定DNSサーバーで確認
hostnamectlホスト名の確認・変更
ログjournalctl -u NetworkManagerネットワーク関連ログの確認
dmesg | grep enpカーネルのNIC関連メッセージ確認

🎓 一緒に使っている教材はこちら

私がメインで使っている参考書と問題集です。よければ一緒に勉強していきましょう(笑)

【PR】▶ あずき本(Linux教科書 LinuCレベル2 Version 10.0対応)

【PR】▶ スピードマスター LinuCレベル2問題集(白本)


✅ まとめ

お疲れ様でした!今回のポイントをおさらいしましょう。

  • トラブルシューティングの順番:NICの状態 → 同一セグメント → 外部IP → DNS → ポート
  • traceroute / tracepath:経路確認。* * * は必ずしも障害ではない。tracepath はroot不要
  • ポートの確認:サーバー側からは ss -tlnp、外部からは nc -zvnmap
  • nc -zv-z はゼロI/Oモード(データ送信なしで開閉確認)、-v は詳細表示
  • ログファイル:RHEL系は /var/log/messages、Debian系は /var/log/syslog。どちらでも journalctl が使える

主題2.03はこれで3記事すべて完走です!ネットワーク構成のコマンドは数が多いですが、まとめ表を使って繰り返し確認していきましょう。

皆さんにとって、今日も素敵な1日になりますように!


参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html

※本記事はLinuC レベル2 Version 10.0 の出題範囲をもとに作成しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA