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