はじめに
「CUIの練習のために何かコマンドを書いてみたいけど、データ消しちゃったり変に設定変えちゃったりしないか不安…」
そんな人向けに、日経NETWORK 2025年11月号から、コマンドプロンプトで気軽に入力できる確認コマンドをいくつかまとめました。
1.ping
pingとは
自分のパソコンと相手がつながっているかチェックするためのコマンドです。
以下のように書きます。
ping [オプション] ○○○.×××.com
オプションについては後で説明します。
ping 実行結果
試しにGoogleのトップページとつながっているか確認します。
C:\Users\pc-abc>ping www.google.com
www.google.com [2001:4860:XXXX:XXXX::]に ping を送信しています 32 バイトのデータ:
2001:4860:XXXX:XXXX:: からの応答: 時間 =9ms
2001:4860:XXXX:XXXX:: からの応答: 時間 =13ms
2001:4860:XXXX:XXXX:: からの応答: 時間 =9ms
2001:4860:XXXX:XXXX:: からの応答: 時間 =53ms
2001:4860:XXXX:XXXX:: の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 9ms、最大 = 53ms、平均 = 21ms
意味はこんな感じ↓
- 2001:4860:XXXX:XXXX:: からの応答: 時間 =9ms
→相手からの返信が返ってくるまでに9ミリ秒かかった
- 2001:4860:XXXX:XXXX:: の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
→4回リクエストを送ったら4回返ってきた。損失は0
- ラウンド トリップの概算時間 (ミリ秒):
最小 = 9ms、最大 = 53ms、平均 = 21ms
→相手にリクエスト送って返信来るまでに最小で9ミリ秒、最大で53ミリ秒かかった。
4回送った時の平均は21ミリ秒。
すべてのリクエストに返答があり、返答時間は最大でも53ミリ秒(国内サーバーなら100ミリ秒以下で正常)。
つまり…通信に問題なしということです。
また、オプションを付ければ、表示の仕方を変えたり、ちょっとした追加の指示を出すことも可能です。
pingのオプション一覧
| 表記法 | 意味 |
|---|---|
| -t | ユーザーが中断するまで問い合わせを継続 |
| -a | 逆引きの名前検索(IPアドレスからドメイン名を調べること)をする |
| -n 数値 | 問い合わせの実行回数を指定する |
| -i 数値 | TLT(ルーターを跨ぐ回数)を指定 |
| -4 | IPv4で表示 |
| -6 | IPv6で表示 |
2.tracert
tracertとは
宛先までの経路を把握するコマンドです。
tracert [オプション] ○○○.×××.com
と打つことで、どんな経路を辿ってそのページにたどり着くのかを調べることができます。
tracert 実行結果
試しにGoogleのトップページへの経路を調べてみます。
C:\Users\pc-abc>tracert www.google.com
www.google.com [2001:4860:XXXX:XXXX::] へのルートをトレースしています
経由するホップ数は最大 30 です:
1 11 ms 14 ms 6 ms XXXX:XXXX:XXXX:XXXX::1
2 11 ms 8 ms 11 ms XXXX:XXXX:XXXX:XXXX::XXXX
3 * * * 要求がタイムアウトしました。
4 * * * 要求がタイムアウトしました。
5 40 ms 55 ms 8 ms 2001:xxx:XXXX:X::1
6 9 ms 24 ms 13 ms 2001:4860:XXXX:XXXX::
トレースを完了しました。
意味はこんな感じ↓
1行目:スタート、自分のPC
2行目~4行目:中継地点(家、地域レベル)
5行目:中継地点(国、世界レベル)
6行目:ゴール
3、4行目に「要求がタイムアウトしました」と書いてあります。
一見エラーに見えますが、実はエラーではありません。ちゃんと通過しています。
セキュリティ対策や負荷軽減のために応答していないだけです。
また、tracertはサーバーまでしか調べられないため、細かいページまでの経路は調べられません。
ホスト名以外の部分を入力すると↓
C:\Users\pc-abc>tracert https://www.google.com/
ターゲット システム名 https://www.google.com/ を解決できません。
このようにエラーが起きてしまいます。
teracertのオプション一覧
| 表記法 | 意味 |
|---|---|
| -d | 経路上のルーターの名前解決(ドメイン名をIPアドレスに変換)をしない |
| -h 数値 | 相手先までの最大ホップ数を指定 |
| -w 数値 | 応答待ち時間を指定 |
| -R | IPv6で往復の経路をトレース |
| -4 | IPv4で表示 |
| -6 | IPv6で表示 |
3.pathping
pathpingとは
ルーターごとにping処理的なことをしてくれる、いわばping+tracertです。
以下のように書きます。
pathping [オプション] ○○○.×××.com
pathping 実行結果
試しにGoogleのトップページでやってみます。
C:\Users\pc-abc>pathping www.google.com
www.google.com [2001:4860:XXXX:XXXX::] へのルートをトレースしています
経由するホップ数は最大 30 です:
0 pc-abc.flets-east.jp [XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]
1 XXXX:XXXX:XXXX:XXXX::1
2 XXXX:XXXX:XXXX:ffff::fffd
3 * * *
統計を 50 秒間計算しています...
ソースからここまで このノード/リンク
ホップ RTT 損失/送信 = Pct 損失/送信 = Pct アドレス
0 pc-abc.flets-east.jp [XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]
0/ 100 = 0% |
1 7ms 0/ 100 = 0% 0/ 100 = 0% XXXX:XXXX:XXXX:XXXX::1
0/ 100 = 0% |
2 10ms 0/ 100 = 0% 0/ 100 = 0% XXXX:XXXX:XXXX:ffff::fffd
トレースを完了しました。
「3 * * *」の部分ですが、どうやら経路探索を途中で中止してしまうみたいです。
参照している雑誌では、後に説明する「-n」をオプションとして付ければ解決するそうですが、解決しませんでした。
しかし、「-4」を付けてみたところ…
C:\Users\pc-abc>pathping -4 www.google.com
www.google.com [142.251.XXX.XXX] へのルートをトレースしています
経由するホップ数は最大 30 です:
0 host.docker.internal [XXX.XXX.XX.XX]
1 XXX.XXX.XX.X
2 XXX.XXX.XXX.XX
3 XXX.XXX.XXX.XX
4 XX.XX.XXX.XX
5 XXX.XXX.XXX.XXX
統計を 125 秒間計算しています...
ソースからここまで このノード/リンク
ホップ RTT 損失/送信 = Pct 損失/送信 = Pct アドレス
0 host.docker.internal [XXX.XXX.XX.XX]
0/ 100 = 0% |
1 6ms 0/ 100 = 0% 0/ 100 = 0% XXX.XXX.XX.X
0/ 100 = 0% |
2 --- 100/ 100 =100% 100/ 100 =100% XXX.XXX.XXX.XX
0/ 100 = 0% |
3 12ms 0/ 100 = 0% 0/ 100 = 0% XXX.XXX.XXX.XX
0/ 100 = 0% |
4 11ms 0/ 100 = 0% 0/ 100 = 0% XX.XX.XXX.XX
0/ 100 = 0% |
5 9ms 0/ 100 = 0% 0/ 100 = 0% XXX.XXX.XXX.XXX
トレースを完了しました。
なぜか最後までやってくれるようになりました。
チャットGPTに聞いてみたところ、IPv6とIPv4で通るネットワークが異なることが理由として考えられるらしいです。
IPv4:返事をしてくれる経路を通る
IPv6:返事をしてくれない経路を通る
IPv6表示でも、tracertと同様に応答がないだけなので、通信自体には何も問題はありません
意味はこんな感じ↓
1行目:スタート、自分のPC
2行目:家のルーター
3~4行目:中継地点(国、世界レベル)
5行目:ゴール
「2 --- 100/ 100 =100% 100/ 100 =100% XXX.XXX.XXX.XX」の部分で損失が100%になっていますが、これはICMP(確認用の信号)には返事をしない設定になっているだけなので、こちらも通信に問題はなさそうです(実際、後ろのホップは応答がある)。
pathpingのオプション一覧
| 表記法 | 意味 |
|---|---|
| -n | 経路上のルーターの名前解決(ドメイン名→IPアドレスに変換)をしない |
| -h 数値 | 相手先までの最大ホップ数を指定 |
| -I(大文字のi) アドレス | 送信元アドレスを指定 |
| -p 数値 | pingを送る間隔を指定 |
| -w 数値 | タイムアウト時間を指定 |
| -4 | IPv4で表示 |
| -6 | IPv6で表示 |
4.nslookup
nslookupとは
DNS関連の情報を集めるためのコマンドです。
以下のように書きます。
nslookup [オプション] ×××.com
nslookup 実行結果
試しにGoogleのトップページでやってみます。
C:\Users\pc-abc>nslookup google.com
サーバー: UnKnown
Address: XXXX:XXXX:XXXX:XXXX::1
権限のない回答:
名前: google.com
Addresses: XXXX:XXXX:XXXX:XXXX::71
XXXX:XXXX:XXXX:XXXX::65
XXXX:XXXX:XXXX:XXXX::64
XXXX:XXXX:XXXX:XXXX::8b
XXX.XXX.XX.XXX
XXX.XXX.XX.XXX
XXX.XXX.XX.XXX
XXX.XXX.XX.XXX
XXX.XXX.XX.XXX
XXX.XXX.XX.XXX
意味はこんな感じ↓
- サーバー: UnKnown
Address: XXXX:XXXX:XXXX:XXXX::1
→DNSサーバーのホスト名とIPアドレス
- 権限のない回答:
名前: google.com
Addresses: XXXX:XXXX:XXXX:XXXX::71
XXXX:XXXX:XXXX:XXXX::65(以下略)
→Googleのドメイン名とサーバーのIPアドレス
※IPアドレスがたくさん出てくるのは、Googleのデータセンターがたくさんあるため。
パッと見「これ大丈夫なの🤔」みたいなところがいくつかあると思います。
✅DNSサーバーのホスト名がUnKnown
→ホスト名が登録されていないか、取得できなかっただけ。通信自体には問題なし。
✅権限のない解答とは?
→「google.comを管理しているDNSサーバー本人じゃないけど、google.comのIPアドレス知ってるから教えるね」という意味。こちらも問題なし。
nslookup対話型
nslookupは対話型でも利用可能です。
まず、nslookupと入力し、「>」 が出てきたらset [オプション]を入力。
もう一度「>」 が出てきたら、ドメイン名を入力します。
※対話型の場合、[オプション]はハイフン(-)を付けない
nslookup対話型 実行結果
試しに、GoogleのトップページとYahoo!JAPANのトップページでやってみます。
C:\Users\pc-abc>nslookup
既定のサーバー: UnKnown
Address: XXXX:XXXX:XXXX:XXXX::1
> set type=mx
> google.com
サーバー: UnKnown
Address: XXXX:XXXX:XXXX:XXXX::1
権限のない回答:
google.com MX preference = 10, mail exchanger = smtp.google.com
smtp.google.com internet address = xxx.xxx.xxx.xx
smtp.google.com internet address = xxx.xxx.xxx.xx
smtp.google.com internet address = xxx.xxx.xxx.xx
smtp.google.com internet address = xxx.xxx.xxx.xx
smtp.google.com internet address = xxx.xxx.xxx.xx
> set type=a
> yahoo.co.jp
サーバー: UnKnown
Address: XXXX:XXXX:XXXX:XXXX::1
権限のない回答:
名前: yahoo.co.jp
Addresses: xxx.xx.xxx.xxx
xxx.xx.xxx.xxx
xxx.xx.xxx.xxx
xxx.xx.xxx.xxx
(以下略)
> quit
対話モードを終了するときはquitで抜けられます。
対話型のメリット
毎回「nslookup」を打たなくても、オプションやドメイン名だけを変えて情報収集ができる
nslookupのオプション一覧
nslookupは、大体-type=タイプ名で指定します。
| 表記法 | 意味 |
|---|---|
| -type=a | ドメイン名に対応するIPv4アドレスを指定 |
| -type=aaaa | ドメイン名に対応するIPv6アドレスを指定 |
| -type=ns | 権威DNSサーバー(権威ある回答をするサーバー)のドメイン名を知る |
| -type=mx | メールサーバーのドメイン名を知る |
| -type=txt | テキストレコードを表示 |
| -d、-d2 | デバッグモードで問い合わせる |
5.netstat
netstatとは
ネットワークの動作状況を確認するためのコマンドです。
以下のように書きます。
netstat[オプション]
netstat 実行結果
PS C:\Users\ANY-PC184> netstat
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP xxx.xxx.xx.xx:xxxxx xxx:xxxx ESTABLISHED
TCP xxx.xxx.xx.xx:xxxxx xxx-xx-xxx-xx-xxx:https ESTABLISHED
TCP xxx.xxx.xx.xx:xxxxx xxx-xxx-xx-xxx:https ESTABLISHED
TCP xxx.xxx.xx.xx:xxxxx xxx-xx-xx-xx-xxx:https ESTABLISHED
TCP xxx.xxx.xx.xx:xxxxx xx.xx.xxx.x:https ESTABLISHED
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:49424 [xxxx:xxxx:xxxx:x:2]:https ESTABLISHED
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:50472 dns:https ESTABLISHED
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:53274 rx-in-f95:https TIME_WAIT
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:56347 dns:https TIME_WAIT
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:57826 xxxx:xxxx:xxxx:xxxx:x:xxxx:xxxx:xxxx]:https ESTABLISHED
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:60374 xx-xx-xxxx:xxxx ESTABLISHED
TCP [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx7]:61019 xxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx:https ESTABLISHED
左から、
-
プロトコル
→TCP(正しさ重視)かUDP(速さ重視)。httpsはデータが正しく届かなければならないので、基本TCP。
-
ローカルアドレス
→自分のPCのアドレスとポート番号。
-
外部アドレス
→相手のサーバーとポート番号。
-
状態
→TCPの動作状態。メッセージ 意味 LISTEN 接続待ち ESTABLISHED 現在通信中 CLOSING 自分も相手も同時に切断処理中 TIME_WAIT 通信終了→待機中 CLOSE 接続終了 CLOSE_WAIT 相手が切断、自分はまだ終了していない SYN_RECEIVED 接続要求を受けた状態
以下の場合は注意
CLOSE_WAITが大量→アプリのバグかサーバーに問題がある
SYN_RECEIVEDが大量→サーバーが攻撃を受けている可能性あり
今回はESTABLISHEDとTIME_WAITしかないため、問題なし。
netstatのオプション一覧
| 表記法 | 意味 |
|---|---|
| -a | すべてのポートを表示 |
| -b | ポートを利用しているプログラムを表示(管理者権限が必要になるため、できない可能性が高い) |
| -n | IPアドレスとポート番号で表示 |
おわりに
日経NETWORK 2025年11月号には、今回紹介したもの以外にも基本のネットワークコマンドが載っています。そちらを試してみるのもおすすめですが、オプションによっては設定を変えてしまったり、削除してしまったりするので注意が必要です。
最後まで読んでいただき、ありがとうございました。
参考資料