Linuxサーバーを運用するうえで、ネットワーク状態の確認は欠かせないスキルです。「サーバーにアクセスできない」「外部APIに接続できない」といった問題に直面したとき、適切なLinuxネットワークコマンドを使いこなすことで、原因を迅速に特定できます。

本記事では、Linuxネットワークコマンドの基本操作として以下の内容を解説します。

  • ip addrip routeによるネットワークインターフェースとルーティングの確認
  • pingtracerouteによる疎通確認
  • nslookupdigによるDNS名前解決の確認
  • curlwgetによるHTTPリクエストの実行

この記事を読むことで、ネットワーク状態の確認と基本的な通信テストができるようになります。

前提条件

本記事を理解するために、以下の知識があることを前提としています。

実行環境

本記事で使用するコマンドは以下の環境で動作確認を行っています。

項目 環境
OS Ubuntu 22.04/24.04、Rocky Linux 9、Debian 12
必要なパッケージ iproute2、iputils-ping、dnsutils(bind-utils)、curl、wget
権限 一般ユーザー(一部のコマンドでsudoが必要)

ほとんどのLinuxディストリビューションでは、これらのコマンドは標準でインストールされています。不足している場合は、パッケージマネージャーでインストールしてください。

1
2
3
4
5
6
# Ubuntu/Debian系
sudo apt update
sudo apt install iproute2 iputils-ping dnsutils curl wget traceroute

# RHEL/Rocky Linux系
sudo dnf install iproute iputils bind-utils curl wget traceroute

期待される学習成果

本記事を読み終えると、以下のことができるようになります。

  1. ipコマンドでネットワークインターフェースの設定を確認できる
  2. pingtracerouteでネットワーク接続性を診断できる
  3. nslookupdigでDNS名前解決を確認できる
  4. curlwgetでHTTP通信をテストできる

ネットワークコマンドの全体像

Linuxネットワークコマンドは、確認する対象によって使い分けます。以下の図は、各コマンドの役割を示しています。

flowchart TB
    subgraph Layer1["ネットワーク層"]
        IP[ip addr/ip route<br/>インターフェース・ルーティング確認]
        PING[ping<br/>疎通確認]
        TRACE[traceroute<br/>経路確認]
    end
    
    subgraph Layer2["アプリケーション層"]
        DNS[nslookup/dig<br/>DNS名前解決]
        HTTP[curl/wget<br/>HTTP通信テスト]
    end
    
    START[確認したい内容] --> Q1{IPアドレス・<br/>ルーティング?}
    Q1 -->|Yes| IP
    Q1 -->|No| Q2{ホストへの<br/>接続性?}
    Q2 -->|Yes| PING
    Q2 -->|No| Q3{経路の確認?}
    Q3 -->|Yes| TRACE
    Q3 -->|No| Q4{名前解決?}
    Q4 -->|Yes| DNS
    Q4 -->|No| HTTP

それでは、各コマンドの使い方を順に見ていきましょう。

ipコマンドによるネットワーク情報の確認

ipコマンドは、Linuxでネットワーク設定を確認・変更するための標準的なツールです。従来のifconfigコマンドに代わり、現在のLinuxディストリビューションではipコマンドの使用が推奨されています。

ip addrでインターフェース情報を確認する

ip addr(またはip a)コマンドで、ネットワークインターフェースに割り当てられたIPアドレスを確認できます。

1
ip addr

実行結果の例を見てみましょう。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::5054:ff:fe12:3456/64 scope link 
       valid_lft forever preferred_lft forever

出力の主要な項目を確認しましょう。

項目 説明
インターフェース名 ネットワークデバイスの識別名 loeth0enp0s3
state インターフェースの状態 UP(有効)、DOWN(無効)
link/ether MACアドレス 52:54:00:12:34:56
inet IPv4アドレスとサブネットマスク 192.168.1.100/24
inet6 IPv6アドレス fe80::5054:ff:fe12:3456/64
scope アドレスの有効範囲 globallinkhost

特定のインターフェースのみを確認したい場合は、デバイス名を指定します。

1
2
# eth0の情報のみを表示
ip addr show eth0

ip routeでルーティングテーブルを確認する

ip route(またはip r)コマンドで、システムのルーティングテーブルを確認できます。パケットがどの経路を通って送信されるかを把握するために重要な情報です。

1
ip route

実行結果の例を確認しましょう。

default via 192.168.1.1 dev eth0 proto dhcp metric 100 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100 

出力の各項目の意味は以下のとおりです。

項目 説明
default via 192.168.1.1 デフォルトゲートウェイ(外部ネットワークへの出口)
dev eth0 使用するネットワークインターフェース
proto dhcp ルートの設定方法(DHCPで取得)
192.168.1.0/24 同一サブネット内への直接ルート
src 192.168.1.100 送信元IPアドレス

特定の宛先へのルートを確認するには、ip route getコマンドを使用します。

1
2
# 8.8.8.8(Google DNS)への経路を確認
ip route get 8.8.8.8
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100 uid 1000 
    cache 

ip linkでインターフェースの状態を確認する

ip linkコマンドは、ネットワークインターフェースの状態(UP/DOWN)やMACアドレスなどの情報を確認できます。

1
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

フラグの意味は以下のとおりです。

  • UP: インターフェースが有効
  • LOWER_UP: 物理層での接続が確立(ケーブルが接続されている)
  • BROADCAST: ブロードキャストをサポート
  • MULTICAST: マルチキャストをサポート

pingによる疎通確認

pingコマンドは、ネットワーク接続性を確認する最も基本的なツールです。ICMPエコー要求パケットを送信し、対象ホストからの応答を確認します。

基本的な使い方

1
ping google.com
PING google.com (142.250.199.110) 56(84) bytes of data.
64 bytes from nrt12s51-in-f14.1e100.net (142.250.199.110): icmp_seq=1 ttl=116 time=3.42 ms
64 bytes from nrt12s51-in-f14.1e100.net (142.250.199.110): icmp_seq=2 ttl=116 time=3.28 ms
64 bytes from nrt12s51-in-f14.1e100.net (142.250.199.110): icmp_seq=3 ttl=116 time=3.31 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.280/3.337/3.420/0.058 ms

出力の重要な項目を確認しましょう。

項目 説明
icmp_seq パケットのシーケンス番号
ttl Time To Live(パケットの生存時間)
time 往復時間(RTT: Round Trip Time)
packet loss パケット損失率(0%が理想)

Linuxのpingはデフォルトで継続的にパケットを送信します。停止するにはCtrl+Cを押します。

よく使うオプション

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 回数を指定して実行(4回で終了)
ping -c 4 google.com

# 間隔を指定(0.5秒間隔)
ping -i 0.5 -c 4 google.com

# パケットサイズを指定(1000バイト)
ping -s 1000 -c 4 google.com

# タイムアウトを設定(5秒)
ping -W 5 -c 4 google.com

pingで確認できること

pingコマンドの結果から、以下のことが判断できます。

結果 判断
応答あり ネットワーク層での接続性は正常
応答なし(タイムアウト) ネットワーク到達性に問題あり、またはICMPがブロックされている
Destination Host Unreachable 対象ホストへの経路がない
高い遅延やパケット損失 ネットワーク品質に問題あり

tracerouteによる経路確認

tracerouteコマンドは、パケットが宛先に到達するまでに通過するルーター(ホップ)を表示します。ネットワーク障害の発生箇所を特定するのに役立ちます。

基本的な使い方

1
traceroute google.com
traceroute to google.com (142.250.199.110), 30 hops max, 60 byte packets
 1  _gateway (192.168.1.1)  0.456 ms  0.421 ms  0.408 ms
 2  10.0.0.1 (10.0.0.1)  2.123 ms  2.089 ms  2.076 ms
 3  203.0.113.1 (203.0.113.1)  5.234 ms  5.201 ms  5.188 ms
 4  * * *
 5  142.250.199.110 (142.250.199.110)  8.567 ms  8.534 ms  8.521 ms

出力の各列の意味は以下のとおりです。

意味
番号 ホップ数(経由するルーターの順番)
ホスト名/IP 経由するルーターのアドレス
応答時間 3回の測定結果(ミリ秒)
* * * 応答がない(タイムアウトまたはICMP応答をブロック)

よく使うオプション

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# ICMPを使用(デフォルトはUDP)
traceroute -I google.com

# TCPを使用(特定ポートへの到達性確認)
sudo traceroute -T -p 443 google.com

# 最大ホップ数を指定
traceroute -m 15 google.com

# 名前解決をスキップ(高速化)
traceroute -n google.com

nslookupとdigによるDNS名前解決の確認

DNS名前解決に問題がある場合、nslookupdigコマンドで原因を調査できます。両コマンドとも同様の機能を持ちますが、digのほうがより詳細な情報を取得できます。

nslookupの基本的な使い方

nslookupは対話型でもコマンドラインでも使用できます。

1
nslookup google.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.199.110
Name:   google.com
Address: 2404:6800:4004:826::200e

出力から以下の情報が確認できます。

項目 説明
Server 問い合わせ先のDNSサーバー
Non-authoritative answer キャッシュからの応答(権威サーバーではない)
Address 解決されたIPアドレス

特定のDNSサーバーを指定して問い合わせることもできます。

1
2
3
4
5
6
7
8
# Google Public DNSに問い合わせ
nslookup google.com 8.8.8.8

# 逆引き(IPアドレスからホスト名を取得)
nslookup 8.8.8.8

# レコードタイプを指定(MXレコード)
nslookup -type=mx google.com

digの基本的な使い方

dig(Domain Information Groper)は、より詳細なDNS情報を取得できます。

1
dig google.com
; <<>> DiG 9.18.28 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             300     IN      A       142.250.199.110

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Wed Jan 08 12:00:00 JST 2026
;; MSG SIZE  rcvd: 55

digの出力セクションの意味は以下のとおりです。

セクション 説明
HEADER クエリのステータス(NOERRORは成功)
QUESTION 問い合わせ内容
ANSWER 応答結果(IPアドレスとTTL)
Query time 問い合わせにかかった時間

digの便利なオプション

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 簡潔な出力(ANSWERセクションのみ)
dig +short google.com

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

# 特定のレコードタイプを取得
dig google.com MX
dig google.com NS
dig google.com TXT

# 逆引き
dig -x 8.8.8.8

# トレース(名前解決の過程を表示)
dig +trace google.com

+shortオプションは、スクリプトでDNS情報を取得する際に便利です。

1
2
3
# IPアドレスのみを取得
IP=$(dig +short example.com)
echo "Resolved IP: $IP"

curlによるHTTPリクエスト

curlは、HTTP/HTTPSリクエストを送信するための強力なコマンドラインツールです。WebサーバーやAPIへの接続テストに広く使用されています。

基本的な使い方

1
2
3
4
5
# GETリクエスト(デフォルト)
curl https://example.com

# レスポンスヘッダーのみを表示
curl -I https://example.com
HTTP/2 200 
content-type: text/html; charset=UTF-8
content-length: 1256
date: Wed, 08 Jan 2026 03:00:00 GMT

よく使うオプション

curlには多数のオプションがありますが、よく使用するものを紹介します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# レスポンスヘッダーも含めて表示
curl -i https://example.com

# 詳細な通信情報を表示
curl -v https://example.com

# リダイレクトを追跡
curl -L https://example.com

# タイムアウトを設定(10秒)
curl --connect-timeout 10 https://example.com

# 出力をファイルに保存
curl -o output.html https://example.com

# HTTPステータスコードのみを取得
curl -s -o /dev/null -w "%{http_code}" https://example.com

POSTリクエストの送信

1
2
3
4
5
6
7
8
# フォームデータを送信
curl -X POST -d "key1=value1&key2=value2" https://api.example.com/submit

# JSONデータを送信
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name": "test", "value": 123}' \
  https://api.example.com/data

認証が必要なリクエスト

1
2
3
4
5
# Basic認証
curl -u username:password https://api.example.com/protected

# Bearerトークン認証
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/protected

接続診断に役立つオプション

1
2
3
# 接続時間などの詳細を取得
curl -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
  -o /dev/null -s https://example.com
DNS: 0.012345s
Connect: 0.023456s
TTFB: 0.045678s
Total: 0.056789s
項目 説明
DNS 名前解決にかかった時間
Connect TCP接続確立までの時間
TTFB Time To First Byte(最初のバイトを受信するまでの時間)
Total 全体の処理時間

wgetによるファイルダウンロード

wgetは、HTTP/HTTPS/FTPからファイルをダウンロードするためのコマンドです。大きなファイルのダウンロードや、再帰的なダウンロードに適しています。

基本的な使い方

1
2
3
4
5
6
7
8
# ファイルをダウンロード
wget https://example.com/file.tar.gz

# ダウンロード先のファイル名を指定
wget -O myfile.tar.gz https://example.com/file.tar.gz

# カレントディレクトリに保存せず、別のディレクトリに保存
wget -P /tmp https://example.com/file.tar.gz

よく使うオプション

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# ダウンロードの進捗を非表示(静かモード)
wget -q https://example.com/file.tar.gz

# 中断したダウンロードを再開
wget -c https://example.com/largefile.iso

# バックグラウンドでダウンロード
wget -b https://example.com/largefile.iso

# リトライ回数を指定
wget --tries=3 https://example.com/file.tar.gz

# タイムアウトを設定
wget --timeout=30 https://example.com/file.tar.gz

curlとwgetの使い分け

curlwgetは似た機能を持ちますが、用途によって使い分けると効果的です。

用途 推奨コマンド 理由
API通信テスト curl 柔軟なリクエスト構築、レスポンス解析が容易
ファイルダウンロード wget レジューム機能、再帰ダウンロード対応
シェルスクリプトでの利用 curl 出力形式の制御が柔軟
Webサイトのミラーリング wget -mオプションでサイト全体を取得可能

実践的な確認手順

ネットワーク接続に問題が発生した場合の、体系的な確認手順を紹介します。

flowchart TD
    START[接続問題の発生] --> STEP1[1. インターフェース確認<br/>ip addr]
    STEP1 --> CHECK1{IPアドレス<br/>割り当て済み?}
    CHECK1 -->|No| FIX1[DHCPまたは<br/>静的IP設定を確認]
    CHECK1 -->|Yes| STEP2[2. ゲートウェイ疎通確認<br/>ping gateway_ip]
    
    STEP2 --> CHECK2{応答あり?}
    CHECK2 -->|No| FIX2[ローカルネットワーク<br/>設定を確認]
    CHECK2 -->|Yes| STEP3[3. 外部サーバー疎通確認<br/>ping 8.8.8.8]
    
    STEP3 --> CHECK3{応答あり?}
    CHECK3 -->|No| STEP3B[経路確認<br/>traceroute 8.8.8.8]
    CHECK3 -->|Yes| STEP4[4. DNS名前解決確認<br/>dig google.com]
    
    STEP3B --> FIX3[ルーティングまたは<br/>ファイアウォールを確認]
    
    STEP4 --> CHECK4{解決成功?}
    CHECK4 -->|No| FIX4[DNS設定を確認<br/>/etc/resolv.conf]
    CHECK4 -->|Yes| STEP5[5. アプリケーション接続確認<br/>curl -v target_url]
    
    STEP5 --> CHECK5{接続成功?}
    CHECK5 -->|No| FIX5[ポート/プロトコル/認証を確認]
    CHECK5 -->|Yes| SUCCESS[問題解決]

確認コマンドの実行例

以下は、実際の確認手順で使用するコマンドの例です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 1. インターフェース確認
ip addr show

# 2. デフォルトゲートウェイの確認と疎通テスト
ip route | grep default
ping -c 4 192.168.1.1  # ゲートウェイIPに置き換え

# 3. 外部サーバーへの疎通確認
ping -c 4 8.8.8.8

# 4. DNS名前解決の確認
dig google.com +short

# 5. Webサーバーへの接続確認
curl -I https://www.google.com

まとめ

本記事では、Linuxネットワークコマンドの基本操作について解説しました。

コマンド 用途 主な使用場面
ip addr IPアドレス確認 インターフェースの設定確認
ip route ルーティング確認 デフォルトゲートウェイ、経路確認
ping 疎通確認 ホストへの接続性テスト
traceroute 経路確認 ネットワーク障害箇所の特定
nslookup/dig DNS確認 名前解決の問題調査
curl HTTP通信 APIテスト、Webサーバー接続確認
wget ファイル取得 大容量ファイルのダウンロード

これらのLinuxネットワークコマンドを使いこなすことで、ネットワーク状態の把握や障害の切り分けが効率的に行えるようになります。まずは自分の環境で各コマンドを実行し、出力の読み方に慣れることから始めてみてください。

参考リンク