一、OpenWrt 抓包簡介
用 Wireshark 抓包是常見的網絡故障排查手段之一。但在路由器中,整合 Wireshark 並不現實,而 OpenWrt 內置的 tcpdump 工具就成了抓包的首選。tcpdump 是一款基於命令行的數據包嗅探器,支持捕獲與過濾各種協議的數據包,是網絡進行故障排查的重要工具。
下面,我們將主要從如下方面介紹 OpenWrt 抓包:
二、OpenWrt 抓包的命令行操作
1. 安裝 tcpdump 工具
使用 SSH 連接到 OpenWrt 路由器,並使用 opkg 安裝 tcpdump 工具。注意,為了能夠成功執行該操作,必須先配置好路由器的網絡連接。
opkg update opkg install tcpdump
2. 簡單抓包並保存到文件
基本用法很簡單,執行以下命令,tcpdump 就會開始抓包並將結果輸出到終端:
tcpdump
為了方便查看,我們可以將結果保存到文件中:
tcpdump -i eth0 -w /tmp/test.pcap
其中,-i 參數指定採用的網卡(這裡是 eth0),-w 參數指定保存的文件路徑及文件名(這裡是 /tmp/test.pcap)。這樣,tcpdump 抓到的數據包就會被保存到 test.pcap 文件中。
3. 過濾器的使用
tcpdump 可以通過過濾器來捕獲特定的數據包。比如,我們只想抓取目的 IP 是 192.168.1.100 的數據包:
tcpdump -i eth0 -w /tmp/test2.pcap dst 192.168.1.100
在這個例子中,我們使用了 dst 過濾器並指定了 IP 地址,這樣 tcpdump 就只會捕獲目的 IP 是 192.168.1.100 的數據包,而忽略其他的數據包。
三、Wireshark 分析抓包結果
1. 下載並安裝 Wireshark
首先,需要在本機下載並安裝 Wireshark。下載地址為:https://www.wireshark.org/download.html
2. 從路由器下載 pcap 文件
從路由器下載 pcap 文件非常簡單,只需使用 SCP 命令:
scp root@192.168.1.1:/tmp/test.pcap /path/to/your/local/folder/
在這個例子中,我們將 test.pcap 文件下載到了 /path/to/your/local/folder/ 目錄下。
3. 打開 Wireshark 並分析 pcap 文件
用 Wireshark 打開剛剛下載的 pcap 文件,操作步驟如下:
1)打開 Wireshark
2)點擊 File -> Open 或者使用 Ctrl + O 打開 pcap 文件
3)分析抓包結果
Wireshark 的詳細使用方法不再贅述。
四、OpenWrt 抓包其他技巧
1. 聯機調試
為了方便調試,Tcpdump 提供了聯機調試功能。只要將數據包發送到相應端口上,Tcpdump 就可以將其攔截並顯示或輸出至文件。如下所示,將入站 IP 數據包通過 TCP 端口放行:
tcpdump -i eth0 -n -p tcp port 80 -w /tmp/test.pcap
2. 抓取指定應用數據包
如果你只想抓取指定應用的數據包,可以結合 Tcpdump 和流控制工具一起使用。以抓取 HTTP 數據包為例,使用 tcpdump 加上流控制工具來指定僅抓取 TCP 協議中端口為 80、80 和 25 的 HTTP 數據包示例如下:
tcpdump -i eth0 -n -p -s 0 -w /tmp/http.pcap tcp port 80 or port 8080 or port 25
五、小結
本文主要介紹了 OpenWrt 抓包的基礎用法和其他技巧,並介紹了如何用 Wireshark 對抓包結果進行分析。通過本文的學習,您應該已經掌握了 OpenWrt 抓包的基本技能,並能更好地排查網絡故障。
原創文章,作者:MRAYV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370026.html