說一說這個問題的由來,通常使用wireshark不須要長時間抓包的,可是有時候遇到網絡通訊中很是棘手的問題,例如一個小時出現一次或者幾個小時出現一次問題的狀況,這種狀況下就必須長時間抓包了。可是若是在wireshark中開始抓包以後等上幾個小時確定會出問題,由於這個時候抓包的內容都是存放在內存中的,幾個小時的數據包,特別是若是涉及到音視頻的數據包是很大的,幾個小時可能會達到幾個G的大小,這種狀況下wireshark會內存溢出,程序直接異常。
這個時候就須要使用wireshark提供的自動分文件存儲的功能了。windows
能夠在wireshark的界面上進行一些設置以後再開啓抓包過程,這個時候wireshark會自動根據咱們指定的文件名並加上序號和時間來保存每一個文件段了,具體過程以下:網絡
選擇Capture—Interfaces… 打開網絡接口對話框tcp
選擇要對其進行抓包的網絡設備,點擊該條目後面的Options按鈕工具
在該對話框中就能夠設置使用多個文件存儲抓到的數據,wireshark會根據咱們指定的文件名自動指定每一段的文件名,其名字爲 「指定的文件名_序號_日期時間.擴展名」,而且該對話框中能夠設置各類文件分段的條件,以及中止抓包的條件,很是靈活。
經過這種方式設置進行多文件保存數據很是方便,可是有一個問題以下:
google
通過長時間抓包以後發現會出現多個 「Closing file!」的對話框,在任務欄上面每個對話框都會多出一個wireshark的圖標,抓包時間越長,文件分段越多該對話框越多,最終會佔滿整個任務欄。而且只能經過鼠標在任務欄wireshark的圖標上右鍵關閉。經過google搜索發現這是wireshark的一個bug,沒有好的解決辦法。因此推薦使用命令行的方式進行長時間抓包。命令行
在wireshark安裝以後,在其安裝目錄下會有一個dumpcap.exe的命令行工具,實際上wireshark的界面程序也是使用這個命令行工具工做的,咱們能夠不須要使用界面,而直接使用該命令行工具進行抓包工做,其命令以下:視頻
命令的含義解釋以下:
dumpcap.exe -i \Device\NPF_{845F9D1E-8F0B-4991-9F9A-C55D107A046B} -w d:\000\ddd.pcap -b filesize:50000
dumpcap.exe在wrieshark的安裝根目錄就能夠看到,其中:
-i 表示指定捕獲的網卡設備,這裏指定的是網卡設備的標識,是一個字符串,能夠在wireshark界面程序中查看,以下:
blog
-w 表示保存的路徑以及文件名,若是是分文件保存,則會自動命名爲ddd_00001_20151221213115.pcap 的形式,也就是「filename_序號_時間.擴展名」。
-b filesize:N 表示指定每一個文件的大小是NKB,如上50000表示 50000 KB,也就是50M。
經過命令行的方式抓包長時間運行沒有任何問題,推薦使用這種方式。接口
經過dumpcap.exe命令行的方式進行抓包,能夠解決文章開頭提出的問題,可是dumpcap.exe該工具只有在安裝wireshark以後纔會有,該程序的運行也依賴wireshark安裝目錄下的其餘的dll,若是不但願安裝wireshark這麼繁瑣,能夠選擇使用tcpdump的windows版本,只有一個exe程序沒有其餘依賴,tcpdump.exe不是wireshark的一部分,須要單獨下載,tcpdump windows版本下載地址ip
經過tcpdump –D 命令能夠列出全部網絡設備列表,注意該列表中的網絡設備標識與咱們在wireshark的設備屬性中拷貝的設備標識有一點區別,在wireshark中拷貝的設備標識都有NPF_的前綴,由於wireshark安裝的是NPF驅動,這是不同的,因此wireshark的命令行工具dumpcap.exe使用的網絡設備標識以wireshark中查看的爲準,而這裏的tcpdump.exe使用的網絡設備標識以 tcpdump -D命令列出的爲準。咱們能夠經過tcpdump –D 得出的網絡設備列表每一項後面的描述信息,與咱們當前使用的網絡鏈接的描述信息比較,能夠得出咱們須要捕獲的網絡鏈接對應的設備標識。命令說明:tcpdump.exe -i \Device\{89515393-AC8F-4D23-9A03-AF35F9950E72} -w E:\000\test.pcap -C 2 -i 指定要捕獲的網絡設備的標識。-w 指定保存的文件,若是分段則會自動保存爲 test.pcap、test.pcap一、test.pcap2 等,這些文件均可以直接拖到wireshark中打開。-C 注意這裏是大寫,表示每個分段文件的大小,單位是M,這裏 -C 2 表示2M一個文件。