今天將自己的電腦既作為客戶端又作為服務端進行一個程序的測試,想着用WireShark來抓包分析一下問題,但由於WireShark只能抓取經過電腦網卡的包,由於我是使用localhost或者127.0.0.1進行測試的,流量是不經過電腦網卡的,所以WireShark無法抓包,一番查找之下找到了解決方法。
方案
1、以管理員身份打開命令提示符
2 、輸入 route add 本機ip mask 255.255.255.255 網關ip
如果不知道本機ip和網關ip,可以在命令行輸入ipconfig查看
例如我的 : route add 192.168.0.106 mask 255.255.255.255 192.168.0.1
3、將我們程序里面的localhost或者127.0.0.1替換成本機ip
4、使用WireShark即可抓到本地包
注:在測試完之后,使用 route delete 本機ip mask 255.255.255.255 網關ip 來刪除我們上面的更改,不然我們本機的所有報文都會先經過網卡再回到本機,會比較消耗性能。
測試
配置完成后,進行抓包,此處使用科來網絡分析軟件進行。
使用ping本機命令后,抓包軟件中看到IP源地址和目標地址均為本機地址的ICMP包,說明設置成功。