Linuxサーバーを運用するうえで、ネットワーク状態の確認は欠かせないスキルです。「サーバーにアクセスできない」「外部APIに接続できない」といった問題に直面したとき、適切なLinuxネットワークコマンドを使いこなすことで、原因を迅速に特定できます。
本記事では、Linuxネットワークコマンドの基本操作として以下の内容を解説します。
ip addrとip routeによるネットワークインターフェースとルーティングの確認pingとtracerouteによる疎通確認nslookupとdigによるDNS名前解決の確認curlとwgetによるHTTPリクエストの実行
この記事を読むことで、ネットワーク状態の確認と基本的な通信テストができるようになります。
前提条件
本記事を理解するために、以下の知識があることを前提としています。
- Linuxの基本的なコマンドライン操作ができる(参考:Linuxターミナル入門 - シェルとコマンドラインの基本)
- IPアドレスとサブネットの基本概念を理解している
- TCP/IPの基礎知識がある
実行環境
本記事で使用するコマンドは以下の環境で動作確認を行っています。
| 項目 | 環境 |
|---|---|
| OS | Ubuntu 22.04/24.04、Rocky Linux 9、Debian 12 |
| 必要なパッケージ | iproute2、iputils-ping、dnsutils(bind-utils)、curl、wget |
| 権限 | 一般ユーザー(一部のコマンドでsudoが必要) |
ほとんどのLinuxディストリビューションでは、これらのコマンドは標準でインストールされています。不足している場合は、パッケージマネージャーでインストールしてください。
|
|
期待される学習成果
本記事を読み終えると、以下のことができるようになります。
ipコマンドでネットワークインターフェースの設定を確認できるpingとtracerouteでネットワーク接続性を診断できるnslookupとdigでDNS名前解決を確認できるcurlとwgetで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: 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
出力の主要な項目を確認しましょう。
| 項目 | 説明 | 例 |
|---|---|---|
| インターフェース名 | ネットワークデバイスの識別名 | lo、eth0、enp0s3 |
| 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 | アドレスの有効範囲 | global、link、host |
特定のインターフェースのみを確認したい場合は、デバイス名を指定します。
|
|
ip routeでルーティングテーブルを確認する
ip route(またはip r)コマンドで、システムのルーティングテーブルを確認できます。パケットがどの経路を通って送信されるかを把握するために重要な情報です。
|
|
実行結果の例を確認しましょう。
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コマンドを使用します。
|
|
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: 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エコー要求パケットを送信し、対象ホストからの応答を確認します。
基本的な使い方
|
|
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を押します。
よく使うオプション
|
|
pingで確認できること
pingコマンドの結果から、以下のことが判断できます。
| 結果 | 判断 |
|---|---|
| 応答あり | ネットワーク層での接続性は正常 |
| 応答なし(タイムアウト) | ネットワーク到達性に問題あり、またはICMPがブロックされている |
Destination Host Unreachable |
対象ホストへの経路がない |
| 高い遅延やパケット損失 | ネットワーク品質に問題あり |
tracerouteによる経路確認
tracerouteコマンドは、パケットが宛先に到達するまでに通過するルーター(ホップ)を表示します。ネットワーク障害の発生箇所を特定するのに役立ちます。
基本的な使い方
|
|
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応答をブロック) |
よく使うオプション
|
|
nslookupとdigによるDNS名前解決の確認
DNS名前解決に問題がある場合、nslookupとdigコマンドで原因を調査できます。両コマンドとも同様の機能を持ちますが、digのほうがより詳細な情報を取得できます。
nslookupの基本的な使い方
nslookupは対話型でもコマンドラインでも使用できます。
|
|
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サーバーを指定して問い合わせることもできます。
|
|
digの基本的な使い方
dig(Domain Information Groper)は、より詳細なDNS情報を取得できます。
|
|
; <<>> 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の便利なオプション
|
|
+shortオプションは、スクリプトでDNS情報を取得する際に便利です。
|
|
curlによるHTTPリクエスト
curlは、HTTP/HTTPSリクエストを送信するための強力なコマンドラインツールです。WebサーバーやAPIへの接続テストに広く使用されています。
基本的な使い方
|
|
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
date: Wed, 08 Jan 2026 03:00:00 GMT
よく使うオプション
curlには多数のオプションがありますが、よく使用するものを紹介します。
|
|
POSTリクエストの送信
|
|
認証が必要なリクエスト
|
|
接続診断に役立つオプション
|
|
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からファイルをダウンロードするためのコマンドです。大きなファイルのダウンロードや、再帰的なダウンロードに適しています。
基本的な使い方
|
|
よく使うオプション
|
|
curlとwgetの使い分け
curlとwgetは似た機能を持ちますが、用途によって使い分けると効果的です。
| 用途 | 推奨コマンド | 理由 |
|---|---|---|
| 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[問題解決]確認コマンドの実行例
以下は、実際の確認手順で使用するコマンドの例です。
|
|
まとめ
本記事では、Linuxネットワークコマンドの基本操作について解説しました。
| コマンド | 用途 | 主な使用場面 |
|---|---|---|
ip addr |
IPアドレス確認 | インターフェースの設定確認 |
ip route |
ルーティング確認 | デフォルトゲートウェイ、経路確認 |
ping |
疎通確認 | ホストへの接続性テスト |
traceroute |
経路確認 | ネットワーク障害箇所の特定 |
nslookup/dig |
DNS確認 | 名前解決の問題調査 |
curl |
HTTP通信 | APIテスト、Webサーバー接続確認 |
wget |
ファイル取得 | 大容量ファイルのダウンロード |
これらのLinuxネットワークコマンドを使いこなすことで、ネットワーク状態の把握や障害の切り分けが効率的に行えるようになります。まずは自分の環境で各コマンドを実行し、出力の読み方に慣れることから始めてみてください。