トラブルシューティングの決め手!Windows と Linux でパケットキャプチャを取得する方法
はじめに
クラスメソッドオペレーションズの Shimizu です。
日々のテクニカルサポート業務で「アプリケーションへの接続がうまくいかない」「サーバーへ通信が届いているか確認したい」といったお問い合せをよくいただきます。
このような「ログに記録されない通信トラブル」の調査において、決め手になるのがパケットキャプチャの取得です。
とはいえ、いざ取得しようとすると「何か特別なツールが必要なの?」「Windows OS でも大丈夫?」と手が止まりがちです。
実は Linux、Windows OS ともに標準のパケットキャプチャツールが用意されていますが、その使い方がまとめられている記事は少ないように感じています。
そこで本記事では、Windows と Linux それぞれで OS の標準ツールを使ってパケットキャプチャを取得し、Wireshark で解析するまでの流れを紹介します。
前提条件
- パケット解析用端末に Wireshark をインストール済み
- TCP/IP の基礎知識(本記事では詳しく解説していません)
Windows / Linux ともにパケットキャプチャの取得は OS 標準ツールを使用しますが、そのままでは解析しにくいため、解析には Wireshark を利用します。
Wireshark のインストールと基本操作は以下を参考にしてください。
以下に Linux と Windows でのパケット取得方法、Wireshark での確認手順を順番にご紹介します。
Linux の tcpdump コマンドを使ってパケットキャプチャを取得する
多くの Linux ディストリビューションに標準搭載されているコマンド tcpdump でパケットを取得してみます。今回は Amazon Linux 2023 にターミナルでログインして操作します。
まず tcpdump コマンドのバージョンを確認します。もし command not found になる場合は、まだ入っていないのでインストールします。
# バージョン確認
tcpdump --version
# インストール(必要に応じて)
sudo dnf install -y tcpdump
パケットキャプチャの開始前に、指定するネットワークインターフェース名を確認します。ifconfig コマンドで以下例のように出力されれば、インターフェース名は ens5 です。
# ネットワークインターフェースの名前を確認
ifconfig
# 出力例
ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 172.31.2.31 netmask 255.255.255.0 broadcast 172.31.2.255
inet6 fe80::8cc:21ff:fe4f:2455 prefixlen 64 scopeid 0x20<link>
ether 0a:cc:21:4f:24:55 txqueuelen 1000 (Ethernet)
RX packets 79817 bytes 170973391 (163.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31330 bytes 13344707 (12.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
パケットキャプチャの取得を開始します。今回はインターフェース ens5 を流れるパケットをファイル linux-capture.pcap に保存するため、以下のように実行します。末尾に & を付けることでバックグラウンドで実行されるため、ターミナルから他の操作を行えます。
※ インターフェース名やファイル名は、実際の環境に併せて置き換えてください。
# パケットキャプチャの取得開始
sudo tcpdump -i ens5 -w ./linux-capture.pcap &
パケットキャプチャが実行中か分からなくなった場合は ps -af コマンドで確認してみます。以下例のように tcpdump プロセスが表示されれば実行中です。
# tcpdump プロセスの確認
ps -af
# 出力例
UID PID PPID C STIME TTY TIME CMD
root 8615 8303 0 04:10 pts/0 00:00:00 sudo tcpdump -i ens5 -w ./linux-capture.pcap
パケットキャプチャの取得を開始したら、記録したい通信を発生させます。もし通信不具合の調査を行いたい場合は、ここで不具合を再現しましょう。
今回はテストのため、適当に以下のようなコマンドで google サイトへの通信を発生させます。
# google サイトへの https 通信
curl https://google.com/
# google サイトへの ping 通信
ping google.com
記録したい通信が完了したら、パケットキャプチャの取得を停止します。
# tcpdump プロセスの終了
sudo killall tcpdump
# tcpdump プロセスが無いことを確認
ps -af
取得したパケットキャプチャファイル(.pcap)の内容は、tcpdump コマンドでも表示可能です。
# 取得したパケットキャプチャファイルの表示
tcpdump -nn -vvv -r linux-capture.pcap
# 出力例
reading from file linux-capture.pcap, link-type EN10MB (Ethernet), snapshot length 262144
04:10:34.790216 IP (tos 0x0, ttl 127, id 15236, offset 0, flags [DF], proto TCP (6), length 317)
172.31.2.31.58592 > 52.195.202.255.443: Flags [P.], cksum 0xaf30 (incorrect -> 0x2bc4), seq 3883648943:3883649208, ack 3307978208, win 1302, options [nop,nop,TS val 4055529379 ecr 1756380885], length 265
04:10:34.790225 IP (tos 0x0, ttl 127, id 48640, offset 0, flags [DF], proto TCP (6), length 563)
172.31.2.31.48170 > 172.31.2.52.443: Flags [P.], cksum 0x5eb7 (incorrect -> 0x81e4), seq 2727916608:2727917119, ack 2533451943, win 461, options [nop,nop,TS val 3137661017 ecr 2508877047], length 511
04:10:34.791090 IP (tos 0x0, ttl 253, id 22463, offset 0, flags [DF], proto TCP (6), length 52)
172.31.2.52.443 > 172.31.2.31.48170: Flags [.], cksum 0x4e72 (correct), seq 1, ack 511, win 3913, options [nop,nop,TS val 2508877088 ecr 3137661017], length 0
ですが上記のようにコマンドラインでは冗長で見づらいので、後述のように .pcap ファイルを Wireshark がインストールされた端末に移動して確認するのが一般的です。
なおパケットキャプチャは記録される情報量が多いため、無差別に取得するとファイルサイズが大きくなりがちです。
取得するパケットの条件(通信先 IP アドレスやポート)をフィルタリングすることで、ファイルサイズを小さく、分析もしやすくできます。
下記サイトに tcpdump コマンドのオプション詳細がありますので、参考にしてみてください。
Windows の pktmon コマンドを使ってパケットキャプチャを取得する
この方法は pktmon コマンドが使える Windows バージョン(Windows 10 / Windows Server 2019 以降)であることが前提になります。詳細は以下をご覧ください。
今回は Windows Server 2025 の EC2 を起動してリモートデスクトップでログインします。PowerShell を管理者権限で起動します。

pktmon コマンドは Linux の tcpdump コマンドと同様、取得対象のネットワークインターフェースやポートをオプションで指定することが可能です。詳細は以下をご覧ください。
今回は特にフィルタリングせずに、出力ファイル名を win-capture.etl としてキャプチャを開始します。
現在キャプチャが実行中であるかは pktmon status コマンドで確認できます。
# ステータス確認
pktmon status
# 実行されていない時の出力
Packet Monitor is not running.
# パケット取得の開始
pktmon start --capture --file-name C:\temp\win-capture.etl
# 再度ステータス確認
pktmon status
# 実行時の出力例
Logger Parameters:
Logger name: PktMon
Logging mode: Circular
Log file: C:\temp\win-capture.etl
Max file size: 512 MB
Memory used: 64 MB
Collected Data:
Packet counters, packet capture
Capture Type:
All packets
Monitored Components:
ALL
Packet Filters:
None
パケットキャプチャの取得を開始したら、記録するために調査対象の通信を実施します。
今回はテストのため、適当に google サイトへのブラウザアクセスと、google.com への ping 通信を発生させます。

記録したい通信が完了したら、パケットキャプチャの取得を停止します。
# パケット取得の停止
pktmon stop
# 停止時の出力例
Flushing logs...
Merging metadata...
Log file: C:\temp\win-capture.etl (No events lost)
指定したフォルダに .etl 形式のファイルが出力されたことを確認します。

なお保存された .etl 拡張子のファイルはそのままでは開くことができず、Microsoft 公式サイトから Windows パフォーマンス アナライザー (WPA) というツールをインストールする必要があります。
ここでは上記ツールの説明を割愛しますが、一般的には下記コマンドで .etl ファイルを Wireshark で開けるファイル形式(.pcap、.pcapng)に変換して分析します。
# .etl ファイルを .pcapng ファイルに変換
pktmon etl2pcap C:\temp\win-capture.etl --out C:\temp\win-capture.pcapng
# 変換できたときの出力例
Processing...
Packets total: 128
Packets dropped: 0
Formatted file: C:\temp\win-capture.pcapng
ファイル形式の変換ができたら、Wireshark をインストールした解析用の端末にファイルを保存し、次のステップに進みます。
Wireshark で .pcap ファイルを 解析する
解析用端末に、取得したパケットキャプチャファイル(.pcap、.pcapng)を保存して、Wireshark アプリケーションの「File > Open」から開きます。
(筆者の環境では Mac 版を使用していますが、Windows 版でもほぼ同じ操作です)


Wireshark はパケットキャプチャの通信内容を直感的な操作で、グラフィカルに解析できます。
例えば HTTP 通信のみを表示したい場合は、検索窓に http と入力するだけでフィルタリングされ、リクエストとレスポンスの詳細を表示できます。

同様に ping の内容を確認したい場合は icmp と入力し、TCP ハンドシェイクの様子を確認したい場合は tcp と入力するだけです。


他にも Wireshark では、様々なフィルタリング表示が可能です。下記記事で紹介されているので、参考にしてみてください。
さいごに
パケットキャプチャは他の一般的な通信ログ(Webアクセスログや VPC フローログ等)と比較して多くの情報が記録されるため、通信系のトラブルシューティングには最も強力な手段と言えます。
ただしファイルサイズが大きくなる性質上「常に記録・保存する」ということが難しく、「調査の時のみ取得する」という形が基本です。
パケットキャプチャの取得には一手間かかるうえ、解析も難しいというイメージをお持ちの方も多いと思いますが、その心理的ハードルを少しでも下げることができればと思い、本記事を執筆しました。
この内容がどなたかのお役に立てば幸いです!
参考資料
- パケットモニター(Pktmon) | Microsoft Learn
- パケットモニター コマンドリファレンス | Microsoft Learn
- tcpdump man page
- Wireshark User's Guide
- Wireshark Display Filter Reference
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。
※2026年1月 アノテーション㈱から社名変更しました





