wireshark error: There are no interfaces on which a capture can be done.

追憶丶年華發表於2018-01-16

一、Linux環境:
1、root使用者啟動
01、啟動一個shell
02、sudo wireshark (需要root許可權)

2、普通使用者啟動
從Linux中第一次啟動Wireshark的時候,可能會覺得奇怪,為什麼看不到任何一個網路卡,比如eth0之類的。這是因為,直接訪問這些裝置 需要 root許可權。然後,我就用root許可權去用了。當然,這是一個不好的做法。比如Gentoo中就會提示:WIRESHARK CONTAINS OVER ONE POINT FIVE MILLION LINES OF SOURCE CODE. DO NOT RUN THEM AS ROOT.

那怎麼辦呢?Wireshark的leader Gerald Combs指出,現在多數Linux發行版都開始實現對raw網路裝置使用檔案系統 許可權(能力) ,可以用這個途徑從普通使用者啟動Wireshark。

以下是具體步驟:
1.安裝setcap。setcap 是libcap2-bin包的一部分,一般來說,這個包預設會已經裝好。
sudo apt-get install libcap2-bin

2.建立Wireshark組。這一步在安裝Wireshark的時候,也會完成。
$ sudo -s
# groupadd -g wireshark
# usermod -a -G wireshark <自己的使用者名稱>
# chgrp wireshark /usr/bin/dumpcap
# chmod 4750 /usr/bin/dumpcap

3.賦予許可權。
#setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap 完成。
可以使用 getcap /usr/bin/dumpcap驗證,輸出應當是:/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

現在就可以從自己的普通使用者啟動Wireshark抓包了。
二、Windows7的環境:
這個錯誤是因為系統沒有啟動NPF服務造成的。

解決的辦法很簡單:
01、在【開始】–>【執行】
02、輸入:【%windir%/system32】
03、將會開啟一個資料夾視窗,在裡面找到CMD.EXE
04、點選右鍵,選擇【以管理員身份執行】
05、選擇【是】,輸入【net start npf】
06、系統提示【NetGroup Packet Filter Driver 服務已經啟動成功。】
07、至此,Wireshark再點選【Interfaces list】就可以正常選擇需要捕捉的介面了。
08、如果需要關閉此服務,是要在命令列輸入【net stop npf】即可。

相關文章