Linux入門:コマンド操作のきほん
ping で接続確認
このレッスンで分かること
pingは ICMP Echo Request を送って RTT を測る、最も基本の接続確認コマンド- クラウドや Cloud Functions では権限制約で使えないことが多く、代替は
curl/nc- 旧コマンド
ifconfig/netstatは非推奨、現代はip/ssを使う
ping で接続確認 とは
pingコマンドでネットワーク疎通を確認し、サーバーとの接続をチェックする操作を学びます。本レッスンでは、ping で接続確認 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
なぜ ping を学ぶか
ping は「相手のホストにパケットが届くか」を最も手軽に確認するコマンドで、ネットワークが怪しいときの最初の一手として今でも現役です。Web サーバーが応答しないとき、Wi-Fi が切れたとき、リモートのデータベースに接続できないとき、まず ping を打って「そもそも経路が通っているか」を見ます。
本コースの実行環境 (Cloud Functions) では ICMP プロトコルが制限されており ping を直接実行することはできませんが、概念は実務で必須なのでしっかり押さえます。手元の Linux や macOS なら ping example.com ですぐ試せます。
ping の仕組み
ping は ICMP Echo Request という小さなパケットを相手に送り、戻ってくる Echo Reply を待ちます。届くまでの時間を RTT (Round Trip Time) と呼び、ミリ秒単位で表示されます。
ターミナル
ping -c 3 example.com
# PING example.com (93.184.216.34) 56(84) bytes of data.
# 64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=15.2 ms
# 64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=15.3 ms
# 64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=15.1 ms
#
# --- example.com ping statistics ---
# 3 packets transmitted, 3 received, 0% packet loss, time 2003ms
# rtt min/avg/max/mdev = 15.116/15.213/15.305/0.077 ms-c 3 は「3 回だけ送ってやめる」オプション。デフォルトでは Ctrl + C を押すまで送り続けます。
主要オプション
| オプション | 役割 |
|---|---|
-c N | N 回送って終了 |
-i 秒 | 送信間隔を指定 (デフォルト 1 秒) |
-W 秒 | 1 回の応答待ちタイムアウト |
-s バイト | パケットサイズを変更 |
-4 / -6 | IPv4 / IPv6 を強制 |
図解 ping のパケットの流れ
リクエストと返信のラウンドトリップで RTT が算出されます。途中の経路のどこかでパケットが落ちると、packet loss の数値が増えて表示されます。
実行できないとき
Cloud Functions やコンテナ環境では ping を実行すると次のように見えます。
ターミナル
ping example.com
# ping: socket: Operation not permittedこれは ICMP ソケットを作る権限が無いためで、コマンドが壊れているわけではありません。同じ理由で AWS Lambda や Google Cloud Run でも ping は通常使えません。クラウドでは代わりに次のコマンドで疎通確認をします。
ターミナル
# HTTP/HTTPS が通るかを確認
curl -v --max-time 5 https://example.com
# TCP ポートが空いているかを確認
nc -vz example.com 443「ping が通らない = 落ちている」とは限りません。多くの本番環境ではセキュリティ上の理由で ICMP をブロックしています。HTTP は通るのに ICMP が通らない、というケースはむしろ普通です。
古いコマンドと現代版
ネットワーク状態を確認する系のコマンドは、過去数年でかなり置き換わりました。古い記事を読むときは次の対応関係を頭に入れておくと、現代の Linux でも迷いません。
| 古い | 現代版 | 用途 |
|---|---|---|
ifconfig | ip a | インターフェイス確認 |
route | ip r | ルーティングテーブル |
netstat -tlnp | ss -tlnp | listen ポート確認 |
arp -a | ip neigh | ARP テーブル |
iptables | nft | パケットフィルタ |
ifconfig や netstat は net-tools パッケージに同梱されていますが、最近の Ubuntu や Debian ではデフォルトで入っていません。
ping 以外の経路確認
traceroute (または tracepath) は、相手に届くまでに通過するルーターを 1 段ずつ表示してくれます。途中のどこで詰まっているのかを見るのに役立ちます。mtr は ping と traceroute を合体させた対話的ツールで、リアルタイムに経路の品質を観察できます。
ターミナル
traceroute example.com
# 1 192.168.1.1 0.5 ms 0.4 ms 0.4 ms
# 2 10.0.0.1 2.1 ms 2.0 ms 2.0 ms
# 3 * * *DNS と切り分ける
ping example.com が応答しなくても、ping 93.184.216.34 で IP 直打ちなら通る、というケースがあります。この場合は DNS が壊れている可能性が高く、/etc/resolv.conf の設定を確認します。逆に IP も通らない場合は、ネットワーク経路またはサーバー本体の問題です。
トラブル発生時、ping の使い方は「ホスト名で打ってみる」「IP 直打ちで打ってみる」の 2 段階で十分に多くを語ります。両方失敗したら経路の問題、ホスト名だけ失敗したら DNS の問題、という切り分けがすぐにできます。
ここまでの要点
ping は ICMP の往復で RTT を測る。クラウドでは権限で使えず、curl / nc で代替。ifconfig netstat は非推奨、ip ss に置き換え。DNS と経路の切り分けはホスト名 + IP の 2 段階で。
まとめ
pingは ICMP Echo Request を送って RTT を測るコマンド- クラウド/コンテナ環境では権限の制約で実行できないことがある
curl -vやnc -vzで HTTP / TCP の疎通を代用できる- 旧コマンド
ifconfig/netstatは非推奨。ip/ssを使う - DNS 問題か経路問題かは、ホスト名と IP の両方を試して切り分ける
次のレッスン
次は curl で HTTP リクエスト で、HTTP リクエストを curl で送りレスポンスを確認する方法を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- ping コマンド の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. ping コマンド とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン