這里寫目錄標題
- 1. wireshark
- 1.1. 過濾包
- 1.2. 常見分析
- 2. tcpdump
- 3. iperf
1. wireshark
**ip.dst eq 10.0.0.21**
是用于網絡流量分析工具(例如 Wireshark 或 tcpdump)的過濾器表達式。 它的作用是篩選出所有目標IP地址為 10.0.0.21
的數據包
IP.addr == 10.0.0.1 搜索指定ip
1.1. 過濾包
會彈出來的
-
協議過濾:
-
quic
:過濾所有 QUIC 協議的數據包。 -
udp
:過濾所有 UDP 協議的數據包(QUIC 基于 UDP)。 -
tcp
:過濾所有 TCP 協議的數據包。 -
http2
:過濾所有 HTTP/2 協議的數據包。 -
tls
:過濾所有 TLS 協議的數據包。 -
IP 地址過濾:
-
ip.src == 192.168.1.1
:過濾源 IP 為192.168.1.1
的數據包。 -
ip.dst == 192.168.1.1
:過濾目標 IP 為192.168.1.1
的數據包。 -
ip.addr == 192.168.1.1
:過濾源或目標 IP 為192.168.1.1
的數據包。 -
端口過濾:
-
udp.port == 443
:過濾 UDP 端口為443
的數據包(QUIC 通常使用 443 端口)。 -
tcp.port == 80
:過濾 TCP 端口為80
的數據包。 -
tcp.srcport == 8080 過濾 TCP 源端口為
8080
的數據包 -
邏輯運算符:
-
&&
:與(例如quic && ip.src == 192.168.1.1
)。 -
||
:或(例如quic || tls
)。 -
!
:非(例如!tcp
)。
基本 TCP 過濾
tcp
過濾所有 TCP 協議的數據包。tcp.port == 80
過濾 TCP 端口為80
的數據包(HTTP 流量)。tcp.port == 443
過濾 TCP 端口為443
的數據包(HTTPS 流量)。tcp.srcport == 8080
過濾 TCP 源端口為8080
的數據包。tcp.dstport == 22
過濾 TCP 目標端口為22
的數據包(SSH 流量)。
TCP 連接狀態過濾
tcp.flags.syn == 1 && tcp.flags.ack == 0
過濾 TCP SYN 包(第一次握手)。tcp.flags.syn == 1 && tcp.flags.ack == 1
過濾 TCP SYN-ACK 包(第二次握手)。tcp.flags.ack == 1 && tcp.flags.syn == 0
過濾 TCP ACK 包(第三次握手)。tcp.flags.fin == 1
過濾 TCP FIN 包(斷開連接請求)。tcp.flags.reset == 1
過濾 TCP RST 包(重置連接)。
TCP 數據分析
tcp.payload
過濾包含 TCP 負載的數據包。tcp.len == 100
過濾 TCP 負載長度為100
字節的數據包。tcp.len > 500
過濾 TCP 負載長度大于500
字節的數據包。
TCP 重傳和異常
tcp.analysis.retransmission
過濾 TCP 重傳的數據包。tcp.analysis.zero_window
過濾 TCP 零窗口數據包(接收方緩沖區已滿)。tcp.analysis.window_update
過濾 TCP 窗口更新的數據包。tcp.analysis.duplicate_ack
過濾 TCP 重復確認的數據包。
組合過濾
tcp && ip.src == 192.168.1.1 && tcp.port == 80
過濾源 IP 為192.168.1.1
且端口為80
的 TCP 數據包。(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (tcp.flags.fin == 1)
過濾 TCP 建立連接和斷開連接的數據包。tcp.analysis.retransmission || tcp.analysis.zero_window
過濾 TCP 重傳和零窗口的數據包。
保存過濾結果
- 在 Wireshark 中應用過濾后,點擊菜單欄的
File
->Export Specified Packets
。 - 選擇
All packets
或Displayed
。 - 保存為
.pcap
或.pcapng
文件。
示例場景
tcp.port == 80
過濾所有 HTTP 流量(TCP 端口為 80)。tcp.flags.syn == 1 && tcp.flags.ack == 0
過濾 TCP 握手的 SYN 包。tcp.analysis.retransmission
過濾所有 TCP 重傳的數據包。tcp && ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
過濾源 IP 為192.168.1.1
且目標 IP 為192.168.1.2
的 TCP 數據包。
1.2. 常見分析
1,
2,
3,
4,Window Full
61622 109.780413297 10.0.0.1 10.0.0.9 openFlow 194 [TCP Window Full] Type: OFPT EXPERIMENTER
是指的發送端發送的數據已經達到的接受窗口的上限。
繼而停止發送,等待新的接收窗口的通告
此時接收端返回的是TCP zero window,表示接收端窗口為0
openflow:表示這個數據包是openflow協議, "TCP Window Full"指示符通常表示接收端的TCP接收緩沖區已滿。這意味著接收端已經接收了所有能夠接收的數據,并且其接收窗口已滿,無法再接收更多的數據,直到一些數據被應用程序處理并從緩沖區中移除。 :發送端會根據接收端的接收窗口大小來控制發送的數據量。當接收端的接收窗口為零時,發送端將停止發送新的數據,直到接收端的緩沖區有更多空間。
5,Zero Window
傳輸層協議TCP—滑動窗口(9)_tcp zerowindow-CSDN博客
Zero Window(0窗口)指的是 TCP 發送方的滑動窗口大小為0,其本質上是因為 TCP 接收方的接收緩存已經滿了,沒有空間再接收數據。當處于 Zero Window 時,TCP 發送方是不能向對方發送數據的——即使發送也會被對方給懟回來
6,TCP ACKed unseen segment
7,TCP Previous segment not captured
[TCP Previous segment not captured]報文指的是在TCP發送端傳輸過程中,該Seq前的報文缺失了。一般在網絡擁塞的情況下,造成TCP報文亂序、丟包時,會出現該標志。
需要注意的是,[TCP Previous segment not captured]解析文字是wireshark添加的標記,并非TCP報文內容。
例子:
流媒體服務器39.135.135.81,端口80,發送序號Seq=147154的包,長度Len=1360,那么下一個數據包序號應該為Seq=147154+1360=148514,可以看到客戶端請求的也是Ack=148514。而服務器下一個包序號為Seq=149874,中間的包丟失了。
8,RST
TCP異常終止的情形
2. tcpdump
你可以使用 host
關鍵字來篩選目標IP地址。例如:
tcpdump -i eth0 dst host 10.0.0.21
這將捕獲所有目標IP地址為 10.0.0.21
的數據包。
tcpdump -i eth0 icmp
篩選eth0端口的icmp包
tcpdump -nni port300781 icmp 這樣才能抓到包 用-nni
tcpdump -nni any icmp 抓該節點所有端口的icmp包
tcpdump -nni port300781 icmp -w test.pacp 抓取的數據包保存到文件 **test.pcap**
中 ,導入到wireshark進行分析
還有個抓包工具tshark
21:26:49.013621 IP 172.20.20.1.15605 > 172.20.20.2.5920: Flags [P.], seq 49:97, ack 106048, win 4723, length 48
Flags 標識符#
使用 tcpdump 抓包后,會遇到的 TCP 報文 Flags,有以下幾種:
[S]
: SYN(開始連接)[P]
: PSH(推送數據)[F]
: FIN (結束連接)[R]
: RST(重置連接)[.]
: 沒有 Flag (意思是除上面四種類型外的其他情況,有可能是 ACK 也有可能是 URG)
使用 **host**
基于IP過濾
- tcpdump host 192.168.10.100
- 根據源ip進行過濾:tcpdump -i eth2 src 192.168.10.100
- 根據目標ip進行過濾:tcpdump -i eth2 dst 192.168.10.200
基于網段進行過濾:net
- tcpdump net 192.168.10.0/24
- 根據源網段進行過濾$ tcpdump src net 192.168
3. iperf
Iperf是一個網絡性能測試工具。Iperf可以測試TCP和UDP帶寬質量。Iperf可以測量最大TCP帶寬,具有多種參數和UDP特性。
iperf -s -p 12345 -i 1 -M 1460
iperf -c 10.0.0.1 -p 9190 -i 1