LPIC Level1 復習ラジオ 16:ネットワークコマンド

投稿日:2026-07-11

音声

※ AI音声で読み上げます

目次

  1. ネットワーク確認の基本順序
  2. ip
  3. ping
  4. ss
  5. traceroute
  6. dig
  7. host
  8. curl
  9. wget
  10. 実践的な切り分け手順
  11. 30秒チェック
  12. 要約

ネットワーク確認の基本順序

ネットワーク障害では、手元から外側へ順番に確認すると原因を絞り込みやすくなります。

  1. インターフェースが存在し、有効か
  2. IPアドレスとプレフィックスが正しいか
  3. ルーティング、特にデフォルトルートがあるか
  4. 同一ネットワークやゲートウェイへ到達できるか
  5. 目的のサービスが待ち受けているか
  6. 途中経路のどこまで到達しているか
  7. DNSで名前解決できるか
  8. HTTPなど目的のアプリケーション通信が成功するか
ip link
ip addr
ip route
ping -c 4 192.0.2.1
ss -lnt
traceroute 198.51.100.10
dig example.com
curl -I https://example.com/
コマンド主な確認対象
ipインターフェース、IPアドレス、ルート、近隣キャッシュ
pingICMP Echoによる到達性と応答時間
ss待受ソケット、通信中の接続、TCP状態
traceroute宛先までの経路上のホップ
dighostDNS問い合わせ
curlwgetHTTP・HTTPSなどを使ったデータ転送

ip

ipは、ネットワークデバイス、IPアドレス、ルーティング、近隣情報などを表示・設定するiproute2の中心的なコマンドです。

ip [オプション] オブジェクト コマンド
オブジェクト省略形対象
linklネットワークインターフェース
addressaddraIPv4・IPv6アドレス
routerルーティングテーブル
neighbourneighnARP・IPv6近隣キャッシュ

インターフェース

ip link show
ip -br link
ip link show dev enp0s3

sudo ip link set dev enp0s3 up
sudo ip link set dev enp0s3 down

-brは簡潔な一行表示です。リモート接続中のインターフェースをdownにすると接続が切れるため注意します。

IPアドレス

ip address show
ip -br address
ip -4 addr show
ip -6 addr show
ip addr show dev enp0s3

192.0.2.10/24/24はプレフィックス長です。

sudo ip addr add 192.0.2.10/24 dev enp0s3
sudo ip addr del 192.0.2.10/24 dev enp0s3

ipで直接行った設定は通常、再起動後に残りません。永続設定はNetworkManager、systemd-networkd、Netplanなど環境に合った方法で行います。

ルーティング

ip route show
ip -4 route
ip -6 route
ip route get 203.0.113.10
default via 192.0.2.1 dev enp0s3
192.0.2.0/24 dev enp0s3 proto kernel scope link src 192.0.2.10
  • default:より具体的な経路がない宛先に使う
  • via:次に渡すゲートウェイ
  • dev:送信インターフェース
  • src:選択される送信元アドレス

ip route getは、特定宛先へ実際に選ばれる経路、ゲートウェイ、送信元アドレスを確認します。

sudo ip route add default via 192.0.2.1 dev enp0s3
sudo ip route del default via 192.0.2.1 dev enp0s3
sudo ip route add 198.51.100.0/24 via 192.0.2.254

近隣キャッシュ

ip neighbour show
ip neigh show dev enp0s3
ip neigh show 192.0.2.1
状態意味
REACHABLE最近到達できることを確認した
STALE情報はあるが最近の到達確認はない
PROBE到達確認を試行している
FAILED近隣解決に失敗した
INCOMPLETEリンク層アドレスが未確定
ip monitor
ip monitor link address route

ip monitorは、リンク、アドレス、ルートなどの変化を継続表示します。

ping

pingは、ICMP Echo Requestを送り、Echo Replyを受け取ることで、宛先への到達性や往復時間を確認します。

ping [オプション] 宛先

基本操作

ping -c 4 192.0.2.1
ping -4 -c 4 example.com
ping -6 -c 4 example.com
ping -n -c 4 192.0.2.1
  • -c 回数:指定回数で終了する
  • -4-6:IPv4・IPv6を指定する
  • -n:表示時の名前解決を行わない

送信元、間隔、待ち時間

ping -I enp0s3 -c 4 192.0.2.1
ping -I 192.0.2.10 -c 4 198.51.100.10
ping -i 2 -c 4 192.0.2.1
ping -W 2 -c 4 192.0.2.1
ping -w 10 192.0.2.1
オプション意味
-I送信インターフェースまたは送信元アドレス
-i 秒送信間隔
-W 秒各応答を待つ時間
-w 秒コマンド全体の締め切り時間

パケットサイズ

ping -s 1400 -c 4 192.0.2.1
ping -M do -s 1472 -c 4 192.0.2.1

-sはICMPデータ部分のサイズです。IPv4でMTUが1500の場合、IPヘッダー20バイトとICMPヘッダー8バイトを引いた1472バイトが一つの目安ですが、トンネルなどで条件は変わります。

結果と注意点

4 packets transmitted, 4 received, 0% packet loss
rtt min/avg/max/mdev = 1.100/1.250/1.400/0.120 ms

packet lossと、最小・平均・最大の往復時間を確認します。

pingが失敗しても、ホストやファイアウォールがICMP Echoへ応答しないだけの場合があります。反対にpingが成功しても、目的のTCP・UDPポートが利用できるとは限りません。

ss

ssは、ソケット統計を表示し、待受ポート、通信中の接続、TCP状態、関連プロセスなどを確認します。

ss [オプション] [フィルター]
オプション意味
-tTCP
-uUDP
-l待受ソケット
-a待受と非待受を含むすべて
-nアドレスやポートを名前へ変換しない
-p関連プロセスを表示する
-4-6IPv4・IPv6に限定する
-sソケット使用状況の概要

代表的な確認

ss -lnt
sudo ss -lntp
sudo ss -tulnp
ss -ant
ss -s

TCP状態で絞り込む

ss -tn state established
ss -tn state time-wait
状態意味
LISTEN接続要求を待っている
ESTABLISHED接続が確立している
SYN-SENT接続要求を送り、応答待ち
SYN-RECV接続要求を受け、確立処理中
TIME-WAIT終了後、遅延パケットの影響を避けるため待っている
CLOSE-WAIT相手の終了後、ローカルアプリケーションのclose待ち

フィルター

ss -lnt 'sport = :22'
ss -lnt 'sport = :80 or sport = :443'
ss -tn 'dport = :443'
ss -tn 'src 192.0.2.10'

sportは送信元ポート、dportは宛先ポートです。

待受アドレス

127.0.0.1:8080
0.0.0.0:22
[::]:22
  • 127.0.0.1:8080:通常はローカルホストだけ
  • 0.0.0.0:22:IPv4の全ローカルアドレス
  • [::]:22:IPv6の未指定アドレス

IPv6ソケットがIPv4も受け付けるかは、アプリケーションとシステム設定により異なります。

traceroute

tracerouteは、パケットのTTLを段階的に増やし、宛先までの経路上にあるルーターからの応答を表示します。

traceroute [オプション] 宛先

基本操作

traceroute example.com
traceroute -n 198.51.100.10
traceroute -4 example.com
traceroute -6 example.com

-nは各ホップを名前へ変換せず、IPアドレスで表示します。

プローブ方式

sudo traceroute -I example.com
sudo traceroute -T -p 443 example.com
sudo traceroute -T -p 22 198.51.100.10
  • -I:ICMP Echoプローブ
  • -T:TCP SYNプローブ
  • -p:宛先ポート

標準方式が遮断される環境でも、目的サービスに近い条件で確認できる場合があります。

最大ホップ数と待ち時間

traceroute -m 15 -w 2 example.com
traceroute -i enp0s3 example.com
  • -m:最大ホップ数
  • -w:応答待ち時間
  • -i:送信インターフェース

アスタリスク

 5  * * *
 6  203.0.113.1  20.1 ms  19.8 ms  20.0 ms

*は、そのプローブへの応答を待ち時間内に受け取れなかったことを表します。ルーターが応答しない、ICMPを制限しているなどの可能性があります。

その後のホップや最終宛先へ到達しているなら、アスタリスクの位置で通信が必ず途絶えたとは断定できません。また、往路と復路が異なる場合もあります。

dig

digは、DNSサーバーへ問い合わせを送り、返されたDNS応答を詳しく表示します。

dig [@DNSサーバー] 名前 [タイプ] [オプション]

基本とレコードタイプ

dig example.com
dig example.com A
dig example.com AAAA
dig example.com MX
dig example.com NS
dig example.com TXT
dig example.com SOA
タイプ用途
AIPv4アドレス
AAAAIPv6アドレス
MXメール配送先
NS権威DNSサーバー
CNAME別名
TXT文字列情報
SOAゾーン管理情報
PTR逆引き

問い合わせ先を指定する

dig @192.0.2.53 example.com A
dig @1.1.1.1 example.com A

@サーバーを省略すると、通常はシステムのリゾルバー設定に基づくDNSサーバーへ問い合わせます。

出力を絞る

dig +short example.com A
dig +noall +answer example.com A
dig -x 192.0.2.10
  • +short:簡潔な結果
  • +noall +answer:ANSWERセクションだけ
  • -x:PTRレコードによる逆引き

TCPと委任経路

dig +tcp example.com A
dig +trace example.com

DNSは通常UDPを使いますが、応答が切り詰められた場合などはTCPが使われます。+traceはルートDNSから委任をたどります。

主要な出力

項目確認内容
statusNOERROR、NXDOMAIN、SERVFAIL、REFUSEDなど
QUESTION SECTION問い合わせた名前とタイプ
ANSWER SECTION回答
AUTHORITY SECTION権威情報
SERVER応答したDNSサーバー
Query time問い合わせ時間

NOERRORでも、指定タイプの回答が空の場合があります。statusだけでなくANSWERも確認します。

host

hostは、DNS問い合わせを簡潔に実行するコマンドです。短い確認にはhost、詳細な調査にはdigが向いています。

host [オプション] 名前 [DNSサーバー]

基本操作

host example.com
host -t A example.com
host -t AAAA example.com
host -t MX example.com
host -t NS example.com
host 192.0.2.10

-tはレコードタイプを指定します。IPアドレスを指定すると通常は逆引きを行います。

DNSサーバーを指定する

host example.com 192.0.2.53
host -t MX example.com 192.0.2.53
host -v example.com

hostでは問い合わせ先を末尾へ指定します。dig @サーバー 名前とは書き方が異なります。

コマンド向いている用途
host名前やIPアドレスを短く確認する
dig問い合わせ先、応答セクション、ステータスを詳しく確認する

curl

curlは、URLで指定したサーバーとの間でデータを転送します。HTTP・HTTPSの動作確認、API、ファイル取得などに使われます。

curl [オプション] URL

本文、ヘッダー、詳細

curl https://example.com/
curl -I https://example.com/
curl -v https://example.com/
curl -L http://example.com/
  • -I:HTTPでHEADリクエストを行いヘッダーを取得する
  • -v:名前解決、接続、TLS、HTTPヘッダーなどを詳しく表示する
  • -L:3xxリダイレクトをたどる

-vの出力には認証情報やCookieが含まれる場合があるため、ログ共有時に注意します。

保存

curl -o page.html https://example.com/
curl -O https://example.com/files/archive.tar.gz
curl -sS https://example.com/ -o page.html
  • -o 名前:指定名で保存する
  • -O:URL末尾の名前で保存する
  • -sS:進捗を抑え、失敗時のエラーは表示する

時間制限とIPバージョン

curl --connect-timeout 5 --max-time 15 https://example.com/
curl -4 https://example.com/
curl -6 https://example.com/

ステータスとヘッダー

curl -sS -o /dev/null   -w 'code=%{http_code} connect=%{time_connect} total=%{time_total}
'   https://example.com/

curl -H 'Accept: application/json' https://api.example.com/data

-wは転送後にHTTPステータスや時間を表示し、-Hは送信ヘッダーを追加します。認証情報を履歴やログへ残さないよう注意します。

データ送信

curl -d 'name=alice&role=user' https://example.com/form
curl -H 'Content-Type: application/json'   -d '{"name":"alice"}'   https://api.example.com/users

-dを指定すると通常POSTになるため、単純なPOSTでは-X POSTは必須ではありません。

証明書検証

curl -k https://example.com/

-kはTLS証明書の検証を無効にします。通常運用では使用せず、CA証明書、ホスト名、システム時刻、証明書チェーンを修正します。

wget

wgetは、Webからファイルを非対話的に取得します。単一ファイル、再開、再帰取得、ミラーリングなどに向いています。

wget [オプション] URL...

取得、保存名、再開

wget https://example.com/files/archive.tar.gz
wget -O archive.tar.gz 'https://example.com/download?id=123'
wget -c https://example.com/files/large.iso
  • -O 名前:指定ファイルへ書き出す
  • -c:既存の部分ファイルから再開を試みる

-Oへ複数URLを指定すると一つの出力へ連結されるため注意します。

表示と存在確認

wget -q https://example.com/file.txt
wget -nv https://example.com/file.txt
wget -S https://example.com/file.txt
wget --spider https://example.com/file.txt
wget -N https://example.com/file.txt
  • -q:出力を抑える
  • -nv:必要最低限の情報を表示する
  • -S:サーバー応答を表示する
  • --spider:保存せず存在を確認する
  • -N:タイムスタンプを基に更新取得する

再帰取得

wget -r https://example.com/docs/
wget -r -np https://example.com/docs/
wget --mirror --convert-links --page-requisites   --no-parent https://example.com/docs/

-rは再帰取得、-npは上位ディレクトリへ移動しない指定です。多数のリクエストと容量を発生させる可能性があるため、範囲、負荷、利用規約、著作権を確認します。

IPバージョンと標準出力

wget -4 https://example.com/file.txt
wget -6 https://example.com/file.txt
wget -qO- https://example.com/data.txt | grep 'ERROR'

-O -は標準出力へ送ります。

証明書検証

wget --no-check-certificate https://example.com/file.txt

証明書検証の無効化を恒久対応にせず、CA証明書、ホスト名、時刻、サーバー設定を修正します。

コマンド向いている用途
curlHTTPヘッダー、API、詳細な通信確認、標準出力への転送
wgetファイル保存、再開、再帰取得、非対話的なダウンロード

実践的な切り分け手順

接続できない

ip -br link
ip -br addr
ip route
ip route get 198.51.100.10
ping -c 4 127.0.0.1
ping -c 4 192.0.2.10
ping -c 4 192.0.2.1
ping -c 4 198.51.100.10
ip neigh show

ループバック、自分のIP、ゲートウェイ、外部IPの順に確認します。ゲートウェイだけ失敗する場合は、リンク、VLAN、プレフィックス、ARPなどを確認します。

IPでは成功するが名前では失敗する

ping -c 4 198.51.100.10
ping -c 4 example.com
dig example.com
dig @192.0.2.53 example.com A
host example.com
cat /etc/resolv.conf

DNSサーバー設定、DNSサーバーへの到達性、回答、検索ドメインなどを確認します。

pingは通るがSSHへ接続できない

sudo ss -lntp 'sport = :22'
systemctl status ssh
systemctl status sshd
ip route get 198.51.100.10
sudo traceroute -T -p 22 -n 198.51.100.10
ssh -vvv user@198.51.100.10

待受、サービス、ファイアウォール、アクセス制御、経路、NAT、SSH設定を確認します。

Webへ接続できない

dig example.com A
dig example.com AAAA
curl -4 -v --connect-timeout 5 https://example.com/
curl -6 -v --connect-timeout 5 https://example.com/
curl -I -L https://example.com/

curl -vで、名前解決、TCP接続、TLS、HTTPのどの段階で失敗するかを確認します。

途中経路が怪しい

traceroute -n 198.51.100.10
sudo traceroute -I -n 198.51.100.10
sudo traceroute -T -p 443 -n 198.51.100.10

複数方式を比較し、途中のアスタリスクだけで障害箇所を断定しません。

よくある間違い

間違いやすい点確認すること
ping失敗だけで相手停止と断定するICMP遮断の場合がある。目的のTCP・UDPも確認する
ping成功だけでサービス正常と判断するsscurlでポートとアプリケーションを確認する
IPだけ見てプレフィックスを確認しないip addr/24なども確認する
デフォルトルートの有無だけを見るip route get 宛先で実際の経路を確認する
待受があれば外部接続できると思う待受アドレス、ファイアウォール、経路も確認する
tracerouteの*を障害箇所と断定するその後のホップと最終到達性も確認する
dig +shortだけで調査する通常出力でstatus、SERVER、ANSWERも確認する
hostとdigのサーバー指定を混同するdig @サーバー 名前host 名前 サーバー
証明書検証無効化を恒久対応にする証明書、CA、ホスト名、時刻を修正する
wget -rを無制限に実行する範囲、負荷、容量、利用規約を確認する

manページ

man ip
man ip-address
man ip-link
man ip-route
man ip-neighbour
man ping
man ss
man traceroute
man dig
man host
man curl
man wget

30秒チェック

  1. ipでインターフェース、アドレス、ルート、近隣情報を表示するオブジェクトは何でしょうか。
  2. 特定宛先へ使われる経路を確認するコマンドは何でしょうか。
  3. ping -c 4-W 2-w 10は何を指定するでしょうか。
  4. ping失敗だけで相手ホストの停止と断定できない理由は何でしょうか。
  5. TCPとUDPの待受ポートとプロセスを数値表示する代表的なssコマンドは何でしょうか。
  6. 127.0.0.1:8080で待ち受けるサービスへ、別PCから通常接続できるでしょうか。
  7. traceroute*は、必ずそこで通信が切れたことを意味するでしょうか。
  8. digでDNSサーバーを指定する書き方は何でしょうか。
  9. dig -xは何を問い合わせるでしょうか。
  10. curl -I-L-o-Oの用途は何でしょうか。
  11. wget -c--spider-rの用途は何でしょうか。
  12. IPでは通信でき、名前では失敗するときに疑う機能は何でしょうか。
答えを表示
  1. linkaddressrouteneighbour
  2. ip route get 宛先
  3. -cは回数、-Wは各応答の待ち時間、-wは全体の締め切り
  4. ICMP Echoがファイアウォールなどで遮断される場合があるため
  5. sudo ss -tulnp
  6. 通常できない。ループバックアドレスだけで待ち受けているため
  7. 意味しない。応答制限でも*になる
  8. dig @DNSサーバー 名前 タイプ
  9. PTRレコードによる逆引き
  10. -Iはヘッダー、-Lはリダイレクト、-oは指定名保存、-OはURL側の名前で保存
  11. -cは再開、--spiderは存在確認、-rは再帰取得
  12. DNSによる名前解決

要約

  • ip linkはインターフェース、ip addrはIPアドレス、ip routeはルート、ip neighは近隣キャッシュを表示します。
  • ip route get 宛先は、実際に選ばれる経路と送信元アドレスを確認します。
  • pingはICMP Echoによる到達性と往復時間を確認し、-cで回数を指定します。
  • ping失敗はICMP遮断でも起こり、ping成功でも目的サービスの利用可否は分かりません。
  • ss -lntpはTCPの待受、ss -tulnpはTCP・UDPの待受を確認する代表例です。
  • 127.0.0.1での待受は通常ローカルだけ、0.0.0.0はIPv4の全ローカルアドレスです。
  • tracerouteはTTLを利用して経路上のホップを調べ、-nで数値表示します。
  • 途中の*は応答がなかったことを示しますが、必ずそこで通信が途絶えたとは限りません。
  • digはDNS応答を詳しく表示し、@サーバー+short-xなどを使えます。
  • hostは簡潔なDNS確認に向き、問い合わせ先サーバーは末尾へ指定します。
  • curlはHTTPヘッダー、API、詳細な通信確認に向き、wgetは保存、再開、再帰取得に向きます。
  • TLS証明書検証の無効化を恒久対応にせず、証明書やCA設定を修正します。

参考資料