このページでは、Wireshark の紹介及び、Windows での Wireshark のインストール方法および使い方について解説していきます!
Wireshark は通信関連の学習やウェブ関連の学習、さらにはこれらの仕事をする上で非常に便利なツールですので、是非ページを読み進めて Wireshark について学んでいってください!
ちなみに、このページではインストール方法としては Windows に対するものを説明していきます。Mac の場合は若干インストール方法が異なるため注意してください。Mac 向けのインストール方法の手順は下記ページで別途説明していますので、Mac を利用している方はインストール方法に関しては下記ページをご参照いただければと思います。
Contents
Wireshark
Wireshark とは通信データをキャプチャして解析を行うツールとなります。
Wireshark を利用することで、あなたの PC と他の端末(PC やサーバー等)との通信データのやり取りを確認したり、やり取りされている通信データの詳細な解析結果を確認することが出来るようになります。
![]()
Wireshark の用途は様々で、例えばウェブアプリや通信プログラムを開発している際に上手く動作しない場合の原因調査に利用することが出来ます。
また、実際に行われている他の端末との通信データのやり取りを確認することで、通信やプログラムの勉強も捗ります。
インストール方法
では、Windows PC への Wireshark のインストール方法について解説していきます。
スポンサーリンク
Windows でのインストール方法
前述のとおり、Windows 版の Wireshark はインストーラーを利用してインストールすることが可能です。
ということで、まずはインストーラーを入手しましょう!インストーラーは下記ページからダウンロードして入手することが出来ます。
https://www.wireshark.org/download.html
このページをウェブブラウザで開けば下図のような画面が表示されます。
![]()
このページに各 OS 向けのインストーラーのダウンロードリンクが貼られていますが、Windows にインストールしたいのであれば、一番上の Windows x64 Installer のリンクをクリックしてください。リンクをクリックすればインストーラーのダウンロードが開始されるはずです。
ダウンロードが完了すれば、おそらくダウンロードフォルダの中にインストーラーが存在しているはずです。
![]()
次は、このインストーラーをダブルクリックして起動します。すると、下の図のようなインストールウィザードが表示されるはずですので、
![]()
基本的には、このウィザードに従って Wireshark のインストールを実施していけばよいだけになります。ポイントとなる部分だけ、かいつまんで説明していきます。
まず、Choose Components の画面は基本的に変更せずにインストールを続行してしまって OK です。
![]()
また、途中で Npcap という機能のインストールをするかどうかが尋ねられますので、ここは基本的にチェックを入れて Npcap のインストールを行うようにしてください。この Npcap は Wireshark が Windows 上で 通信データをキャプチャするための必須の機能となります。もし既に Npcap がインストール済みであれば、古い Npcap を事前にアンインストールしてから Wireshark のインストールを行うのが無難だと思います。
![]()
最後に USBPcap のインストールを行うかどうかが尋ねられます。USBPcap は USB での通信データをキャプチャするために必要な機能となります。したがって、USB 通信のデータをキャプチャできるようにしたいのであればチェックを ON にしてからインストールを実行してください。不要であればチェックは OFF のままで良いです。
![]()
USBPcap のインストールの有無の選択を行った後に Install ボタンをクリックすれば Wireshark のインストールが開始します。
途中で Npcap と USBPcap (インストールを選択した場合のみ) のインストール用ウィザードが立ち上がりますので、規約等に同意できる場合は同意をしてインストールを進めていってください。
![]()
ちなみに、Npcap のオプション選択は私は下図のように選択しています。
![]()
Npcap と USBPcap のインストールを実行してしばらく時間がたてば、ウィザードに下の図のように Completed と表示されます。これが表示されれば Wireshark のインストールが完了したことになります。ウィザードを進めていけば最後に PC の再起動が促されることになりますので、都合の良いタイミングで PC の再起動を実施してください。
![]()
PC の再起動後、Windows メニューを開けば最近追加した項目として Wireshark のアイコンが表示されるようになっているはずです。このアイコンをクリックすれば Wireshark が起動します!
![]()
Wireshark の使い方
インストールが完了したので、次は実際に Wireshark を使ってみましょう!
インターフェースの選択
先ほどの説明のとおり、Windows メニューから Wireshark を起動してみてください。そうすると、下の図のような画面が表示されるはずです。
![]()
ここでは通信データのキャプチャを行いたいインターフェースを指定します。PC 上にはさまざまなインターフェースが存在していて、例えば無線 LAN 接続用(Wi-Fi 接続用)のインターフェースや有線 LAN 接続用のインターフェースが存在します。さらには Windows 上で動作している仮想マシンとの接続用、自分自身の PC との接続用の仮想的なインターフェースも存在します。
![]()
Wireshark 起動時には、これらの中から通信データのキャプチャを行いたいインターフェースを選択する必要があります。そして、その選択したインターフェースが他の端末等とやり取りした通信データがキャプチャされることになります。
使用している PC によって名称は異なるかもしれませんが、よく利用するインターフェースは下記くらいになると思います。ちなみに、vEthernet (WSL) は WSL を有効化して起動しているときのみ表示されるインターフェースとなります。
Adapter for loopback traffic capture:自分自身の PC との通信データのやり取りをキャプチャWi-Fi:他の端末(PC やサーバー等)との Wi-Fi での通信データのやり取りをキャプチャイーサネット:他の端末(PC やサーバー等)との有線 LAN での通信データのやり取りをキャプチャvEthernet (WSL):WSL や WSL 上の Linux との通信データのやり取りをキャプチャ
Adapter for loopback traffic capture に関しては自身の PC 上でお試しでウェブアプリや通信プログラムを動作させるときに、通信がうまく行われているかや、上手く動作しない原因を調査するときに選択することが多いです。例えばウェブブラウザから自身の PC 上で動作しているウェブアプリを利用した際に、お互いがどんな通信データのやり取りをしているかを Wireshark によって確認することが可能です。
Wi-Fi や イーサネット に関しては自身の PC と他のサーバーとの通信のやり取りを調べるときに選択することが多く、例えばウェブブラウザからウェブサイトを閲覧したときにやり取りされる通信データを確認するようなことができます。
今回は、この Wi-Fi or イーサネット を選択してみましょう!ご自身が使用されている PC が Wi-Fi (無線 LAN)でインターネットに接続している場合は Wi-Fi を、有線 LAN でインターネットに接続している場合は イーサネット を選択してください。
スポンサーリンク
Wireshark のウィンドウの見方
インターフェースを選択すれば、下の図のようなウィンドウが表示されると思います。
次は、このウィンドウの見方について説明していきます。
![]()
キャプチャした通信データのリスト
まず、ウィンドウ上側に表示されているのは、Wireshark がキャプチャした通信データのリストです。違う言い方をすれば、起動時に選択したインターフェース(今回の場合は Wi-Fi or イーサネット)で送受信された通信データのリストで、通信データの送受信が行われるたびにリストに通信データが追加されていくことになります。おそらく、Wireshark を起動しただけで、大量の通信データの送受信が行われている様子が確認できるのではないかと思います。このように、PC はユーザーの操作なしに様々な通信を行っています。
![]()
このリストでは各通信データに対して下記の項目が表示されており、これらの情報から自身が調べたい通信データを特定することが出来るようになっています。
No.:通信データの番号Time:通信データキャプチャ開始からの経過時間Source:通信データ送信元Destination:通信データ送信先Protocol:通信プロトコルLength:フレーム長Info:通信データの概要
通信データの生データ
また、このリストに表示されている通信データをクリックすれば、その通信データの詳細がウィンドウ下側に表示されることになります。
まず、ウィンドウ右下に表示されるのが Wireshark がキャプチャした通信データの生データとなります。つまり、Wireshark によってキャプチャされた通信データがそのまま表示されています。
![]()
この通信データの生データの表示も左右で2つに分かれており、左側はキャプチャした通信データのバイナリデータを16進数表示したものになります。2桁の16進数が1バイトを表しています。
さらに、右側ではそのバイナリデータをアスキーコードに変換したものが表示されています。例えば 48 という1バイトのデータはアスキーコードで H の文字で表現されることになりますので、左側で 48 と表示されている部分は右側で H に置き換えられて表示されています。なので、通信データの中に文字列に相当するデータが存在すれば、その部分は右側では文字列で表示されることになります。
![]()
このように、各通信データの生データを Wireshark で確認することが可能です。
通信データの解析結果
さらに、ウィンドウの左下には選択した通信データの解析結果が表示されます。
![]()
> をクリックすれば、各解析結果の詳細を表示することができ、このウィンドウではキャプチャした通信データを各種フィールド(項目)に対応するデータに分解して解析した結果が表示されることになります。
例えば下の図の左側ではウェブページを表示する際に PC から送信された「HTTP リクエスト」の解析結果が表示されており、この通信データにおけるリクエストラインの詳細(メソッド・URI・プロトコル)が表示されていることが確認できます。さらに、この解析結果部分をクリックすれば、右側のウィンドウで、その解析結果に相当するデータ部分がハイライトされるようになっています。
![]()
このように通信データの生データではなく、Wireshark によって解析された結果を確認することが可能で、この解析結果により直感的に通信データの意味合いを理解できるようになっています。
通信データのフィルタリング
先ほどの説明のように、ウィンドウ上側のリストから通信データを選択することで、その通信データの詳細を確認することが可能です。
ただ、特に Wi-Fi や イーサネット をキャプチャ対象のインターフェースとして選択した場合、大量の通信データがキャプチャされて詳細を確認したい通信データが見つけられない・見つけにくいことも多いです。
詳細を確認したい通信データを確実に見つけられるようにするためには Wireshark のフィルタリング機能を利用してリストに表示される通信データをフィルタリングすることが重要となります。
ここから、このフィルタリング機能について簡単に紹介しておきます。
フィルタリング機能の利用
まず、Wireshark では、ウィンドウ上側にある入力バーにフィルタリングの条件を指定することで通信データのフィルタリングを行うことが出来るようになっています。ここに条件を指定後、エンターキーを押せば指定された条件が適用されてリストに表示される通信データがフィルタリングされます。
![]()
フィルタリング機能に対して指定可能な条件について、ここからいくつか紹介していきます。
プロトコルでのフィルタリング
よく利用するフィルタリングの1つが通信プロトコルでのフィルタリングになります。
フィルタリングの条件として HTTP や TCP・UDP、さらには ICMP などのプロトコル名を小文字で指定することで、リストに表示する通信データを、指定したプロトコルのもののみにフィルタリングすることが出来ます。
例えば入力バーに http と入力すれば、Protocol の列が HTTP の通信データ、すなわちHTTP 通信によって送受信された通信データのみがリストに表示されるようになります。
![]()
これにより、余計なプロトコルの通信データをリストから非表示にすることができ、目的の通信データが見つけやすくなります。
IP アドレスでのフィルタリング
また、フィルタリングの条件として IP アドレスを指定することも出来ます。IP アドレスをフィルタリングの条件として指定する場合は、ip.addr == IPアドレス のように、ip.addr を利用して指定を行う必要があります。例えば、PC と 192.168.10.6 の IP アドレスを持つ端末との通信データのやり取りをキャプチャしたい場合は、フィルタリングの条件として下記を指定することになります。
ip.addr == 192.168.10.6
これにより、その 192.168.10.6 と Source or Destination とが一致する通信データのみがリストに表示されるようになります。
特定のサーバーや PC との通信データのやりとりの様子をモニタリングしたいような場合や、そのサーバーとの間でやり取りされる通信データの詳細を確認したいケースも多いので、このフィルタリングの条件の指定に関しても覚えておくとよいと思います。
複数条件でのフィルタリング
フィルタリングの条件を複数指定することも可能です。複数の条件の全てを満たす通信データのみをリストに表示したい場合は、各条件の間に && を、複数の条件の1つでも満たす通信データをリストに表示したい場合は、各条件の間に || を挿入する形で複数の条件を指定することになります。
例えば下記の条件を指定した場合、Protocol の列が HTTP かつ、Source or Destination が 192.168.10.6 である通信データのみがリストに表示されるようになります。
http && ip.addr == 192.168.10.6
また、例えば下記の条件を指定した場合、Protocol の列が HTTP、もしくは、Source or Destination が 192.168.10.6 である通信データがリストに表示されるようになります。
http || ip.addr == 192.168.10.6
このように、条件を指定する、さらには状況に応じて複数の条件を指定することでリストに表示される通信データをフィルタリングし、それによって本当に注目したい通信データのみを確認することが出来るようになります。
Wireshark を使ってみる
最後に、ここまでのまとめとして、実際に一緒に Wireshark を使って通信データの確認をしていきたいと思います。
スポンサーリンク
HTTP 通信における通信データの内容を確認
今回は、下記の URL をウェブブラウザで開いた時に送受信される通信データを確認したいと思います。下記は昔私が作成したページの URL で、HTTP での通信によってページを表示することが可能です。
http://daeudaeu.work/sample-page/fixed-page/
最近はどのページも HTTPS に対応していて通信データが暗号化された状態で通信が行われることになっています。そのため、通信データをキャプチャしたとしても、通信データのデータが人間には理解不能な意味不明なデータになっています。
それに対し、上記のページは HTTP 通信でページを表示することが出来ます。HTTP の場合は通信データのデータが暗号化されていない状態、つまり生のデータの状態で通信されるため、通信データをキャプチャすれば HTTP でクライアントからサーバーに対するリクエストの内容や、サーバーからクライアントに対するレスポンスの内容を Wireshark から確認することが出来るようになっています。
ページをウェブブラウザで開く
ということで、Wireshark を開いた状態で下記 URL をウェブブラウザで開いてみてください。この時、通信データのキャプチャ対象とするインターフェースとしてインターネットに接続しているもの、おそらくWi-Fi or イーサネット を選択しておく必要があるので注意してください。インターネットに接続しているインターフェースが選択されていない場合は、再度 Wireshark を起動しなおしてインターフェースを再選択してください。
http://daeudaeu.work/sample-page/fixed-page/
ウェブブラウザに下図のようなページが表示されれば、あなたの PC と daeudaeu.work のドメインに対応するサーバーとの間で通信データの送受信が行われたことになります。次は、このページ表示時に送受信された通信データを確認していきます。
![]()
ということで、次は Wireshark のウィンドウを表示してください。先ほどページを表示することで Info 列が GET /sample-page/fixed-page/ HTTP/1.1 となる HTTP の通信データが PC から送信されているはずです。ですが、おそらくですが、ウィンドウ上側のリストには大量の通信データが表示されていて、その通信データがリストから見つけにくいのではないかと思います。
そのため、次は HTTP の通信データのみがリストに表示されるようにフィルタリングを行っていきます。このためにウィンドウ上側の入力バーに下記を入力後にエンターキーを押してください(条件を指定した後にエンターキーを押さないとフィルタリングが行われないので注意してください)。
http
そうすると、リストに表示される通信データが、Protocol の列が HTTP のもののみにフィルタリングされるはずです。これにより下の図で示すような Info が GET /sample-page/fixed-page/ HTTP/1.1 の通信データをリストから見つけやすくなると思います(1.1 の部分は異なる可能性があります)。
![]()
この通信データはウェブブラウザでページを開こうとした際に、あなたの PC から daeudaeu.work に対応するウェブサーバーに対して送信された通信データとなります。つまり、この通信データの Destination 列の値は通信データ送信先のサーバーの IP アドレスとなります。したがって、この IP アドレスでフィルタリングを行えば、daeudaeu.work との間でやりとりされる通信データのみをリストに表示できることになります。そうすれば、ウェブページ表示時の通信データのやり取りを確認しやすくなります。
ということで、ウィンドウ上部の入力バーに下記を入力してプロトコルと IP アドレスの両方をフィルタリングの条件に指定してみましょう!
http && ip.addr == 183.90.238.43
これにより、プロトコルが HTTP かつ送信元 or 送信先の IP アドレスが daeudaeu.work に対応するウェブサーバーである通信データのみがリストに表示されるようになります。
![]()
これで、あなたの PC と daeudaeu.work に対応するウェブサーバーとの通信データのやり取りのみが表示されるようになるため、これらの通信データのやり取りを確認すればページ表示時にどんな通信が行われるかを知ることが出来ます。
PC 上では大量の通信データのやり取りが行われているため、上記のような手順で、自身が調べたい通信データが見つけられやすいようにフィルタリング機能を利用することが重要です。
今回は単に HTTP の通信データのみを確認しましたが、例えば自身が開発しているウェブアプリとウェブブラウザの間の通信データのやり取りを調べてウェブアプリが意図したとおりの通信を行っているかどうかや、上手く動作しない時に通信データの問題点等も確認しやすくなります。
特に通信関連の学習や仕事を行う際には役立つ情報になると思いますので、是非 Wireshark を使ってみてください!
まとめ
このページでは Wireshark の紹介及び、Windows での Wireshark のインストール方法および使い方について解説しました!
Wireshark を利用することで、自身の PC と他の端末との間で送受信される通信データをキャプチャし、それを解析した結果を確認することができます。
そして、これを確認することで通信についての学習もできますし、開発しているウェブアプリや通信プログラムの動作確認や上手く動作しない時の原因調査等が行いやすくなります。フィルタリングを上手く活用できれば利便性もかなり上がると思います。
個人的には、かなり利用頻度の高いツールです。めちゃめちゃ便利なツールですので、是非皆さんも利用してみてください!

