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

一、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】即可。

發佈了79 篇原創文章 · 獲贊 22 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章