您好,登錄后才能下訂單哦!
這篇文章主要介紹源服務器訪問目標服務器時出現異常抓包獲取最原始交互數據的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
網絡異常時抓包操作說明
如果源服務器訪問目標服務器時出現異常,您可以抓包獲取最原始的交互數據,然后反饋至阿里云進行排查分析。本文介紹了常用的抓包工具,并簡要說明了抓包步驟。
說明:建議您首先參閱文檔 能 ping 通但端口不通時端口可用性探測說明 排查問題,并參閱 丟包或不通時鏈路測試說明 進行分析。
常用抓包工具介紹
下面分別介紹 Linux 和 Windows 環境下常用的抓包工具:
Linux 環境下的抓包工具
Windows 環境下的抓包工具
Linux 環境下的抓包工具
Linux 環境下,通常使用 tcpdump 進行抓包和分析。它是幾乎所有 Linux 發行版本預裝的數據包抓取和分析工具。有關 tcpdump 工具的獲取和安裝方法,請參閱 tcpdump 官方文檔。
tcpdump 用法示例
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ -Q in|out|inout ] [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,... ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --immediate-mode ] [ --version ] [ expression ]
常見參數說明(區分大小寫)
-s 用于設置數據包抓取長度。如果 -s 為 0,則表示自動選擇合適的長度來抓取數據包。
-w 用于將抓包結果導出到文件,而不是在控制臺進行分析和打印輸出。
-i 用于指定需要監聽的接口(網卡)。
-vvv 用于輸出詳細的交互數據。
expression 是一個正則表達式,用于過濾報文。主要包含如下幾類:
指定類型的關鍵字:包括 host(主機)、net(網絡)和 port(端口)。
指定傳輸方向的關鍵字:包括 src(源)、dst(目標)、dst or src(源或目標)和 dst and src(源和目標)。
指定協議的關鍵字:包括 icmp、ip、arp、rarp、tcp、udp 等協議類型。
更多參數說明及用法,請參閱 tcpdump 的 Manpage。
常見用法和示例輸出
抓取指定網卡指定端口的交互數據。
操作指令:
tcpdump -s 0 -i eth0 port 22
示例輸出:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 20:24:59.414951 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq 442372:442536, ack 53, win 141, length 164 20:24:59.415002 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq 442536:442700, ack 53, win 141, length 164 20:24:59.415052 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq 442700:442864, ack 53, win 141, length 164 20:24:59.415103 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164 </code></pre>
抓取指定網卡發送給指定 IP 上指定端口的交互數據,并在控制臺輸出詳細交互信息。
操作指令:
tcpdump -s 0 -i eth2 -vvv port 22</code></pre>
示例輸出:
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes 20:24:20.991006 IP (tos 0x10, ttl 64, id 22747, offset 0, flags [DF], proto TCP (6), length 316) 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], cksum 0x2504 (incorrect -> 0x270d), seq 133624:133900, ack 1, win 141, length 276 20:24:20.991033 IP (tos 0x0, ttl 53, id 2348, offset 0, flags [DF], proto TCP (6), length 92) 42.120.74.107.43414 > 172.16.2.226.ssh: Flags [P.], cksum 0x4759 (correct), seq 1:53, ack 129036, win 15472, length 52 20:24:20.991130 IP (tos 0x10, ttl 64, id 22748, offset 0, flags [DF], proto TCP (6), length 540) 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], cksum 0x25e4 (incorrect -> 0x5e78), seq 133900:134400, ack 53, win 141, length 500 20:24:20.991162 IP (tos 0x0, ttl 53, id 2349, offset 0, flags [DF], proto TCP (6), length 40) 42.120.74.107.43414 > 172.16.2.226.ssh: Flags [.], cksum 0xf39e (correct), seq 53, ack 129812, win 15278, length 0
抓取發送至指定 IP 的 ping 交互數據,并在控制臺輸出詳細交互數據。
操作指令:
tcpdump -s 0 -i eth2 -vvv dst 223.5.5.5 and icmp
示例輸出:
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes 20:26:00.368958 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 341, length 64 20:26:01.369996 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 342, length 64 20:26:02.371058 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 343, length 64 20:26:03.372181 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 344, length 64
抓取系統內所有接口數據并保存到指定文件。
操作指令:
tcpdump -i any -s 0 -w test.cap</code></pre>
示例輸出:
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
Windows 環境下的抓包工具
Windows 環境下,通常使用免費的開源工具 Wireshark 進行抓包和分析。它是 Windows 環境下最流行的數據包抓取和分析工具,請訪問 Wireshark 官方網站 獲取并安裝 Wireshark 工具。
Wireshark 抓包步驟
安裝并打開 Wireshark。
選擇 捕獲 > 選項。
在 WireShark 捕獲接口 界面中,根據接口名稱或對應的 IP 地址選擇需要進行抓包的網卡,然后單擊 開始。
抓取足量數據包后,選擇 捕獲 > 停止。
選擇 文件 > 保存,將抓包結果保存到指定文件。
有關 Wireshark 工具的使用和數據分析方法,請參閱 Wireshark 官方文檔。
抓包并提交工單流程
出現異常時,您可以抓取數據包并發送給阿里云售后技術支持。抓包時,請確保從源服務器和目標服務器同時并發操作,以便售后技術支持進行對比分析。操作步驟如下:
明確源服務器和目標服務器個通過哪個網卡進行數據交互。
如果源服務器通過 NAT 共享方式訪問公網,則訪問 http://ip.taobao.com 等網站,獲取本地網絡對應的公網 IP。
利用前文所述工具,從源服務器對目標服務器地址的目標端口進行抓包,或者進行完整抓包,然后保存抓包數據。
利用前文所述工具,從目標服務器對源服務器地址進行抓包,或者進行完整抓包,然后保存抓包數據。
創建工單并附上抓包數據文件,提交工單后,阿里云售后技術支持會排查問題并通過工單向您反饋結果。
以上是源服務器訪問目標服務器時出現異常抓包獲取最原始交互數據的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。