国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCPDump抓包分析實戰

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-08-06 17:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

TCPDump抓包分析實戰:10個常見網絡問題排查案例

作為一名資深運維工程師,我在生產環境中遇到過各種奇葩的網絡問題。今天分享10個真實案例,帶你掌握TCPDump這把利器,讓網絡問題無處遁形!

前言:為什么TCPDump是運維必備神器?

在凌晨3點被告警吵醒時,當用戶瘋狂投訴網絡卡頓時,當開發甩鍋說"肯定是網絡問題"時——TCPDump就是你最可靠的戰友。它不會說謊,不會掩飾,只會如實記錄每一個數據包的來龍去脈。

本文你將學到:

? 10個生產環境真實排查案例

? TCPDump核心參數使用技巧

? 抓包結果分析的黃金法則

? 快速定位問題的實戰方法論

案例1:神秘的連接超時 - TCP三次握手失敗

問題現象

# 用戶反饋:訪問API接口頻繁超時
curl: (7) Failed to connect to api.example.com port 443: Connection timed out

抓包分析

# 抓包命令
tcpdump -i eth0 -nn -s0 -w timeout.pcap host api.example.com

# 分析結果
1015.123456 IP 192.168.1.100.45678 > 203.0.113.10.443: Flags [S],seq1000, win 65535
1018.123456 IP 192.168.1.100.45678 > 203.0.113.10.443: Flags [S],seq1000, win 65535
1024.123456 IP 192.168.1.100.45678 > 203.0.113.10.443: Flags [S],seq1000, win 65535

關鍵發現:只有SYN包,沒有SYN-ACK回包!

解決方案

檢查防火墻規則,發現出站443端口被誤刪。這種"只出不進"的問題,只有抓包才能快速定位。

運維金句:網絡問題80%都卡在防火墻上,TCPDump幫你一眼看穿!

案例2:詭異的慢查詢 - TCP窗口縮放問題

問題現象

數據庫查詢偶發性慢,監控顯示CPU、內存正常,但響應時間飆升到30秒。

抓包技巧

# 專門抓取數據庫流量
tcpdump -i any -nn -s0 port 3306 and host 192.168.1.50 -w mysql_slow.pcap

# 重點關注窗口大小變化
tcpdump -r mysql_slow.pcap -nn | grep"win"

分析結果

# 正常情況
1001 IP client.45678 > mysql.3306: win 65535
# 異常情況 
1002 IP client.45678 > mysql.3306: win 0
1002 IP mysql.3306 > client.45678: win 32768 [window probe]

發現問題:TCP接收窗口為0,觸發零窗口探測,導致傳輸停頓。

根本原因:應用程序處理MySQL結果集太慢,接收緩沖區被占滿。

案例3:負載均衡的背后殺手 - RST包追蹤

問題現象

負載均衡后端服務器連接頻繁中斷,日志顯示大量"Connection reset by peer"。

實戰抓包

# 專門捕獲RST包
tcpdump -i eth0 -nn'tcp[tcpflags] & tcp-rst != 0'-c 100

# 結果分析
1115 IP 10.0.1.100.80 > 192.168.1.200.12345: Flags [R.],seq12345, ack 67890
1116 IP 10.0.1.100.80 > 192.168.1.201.12346: Flags [R.],seq54321, ack 98765

分析思路:

1. RST包的發送方向(是客戶端還是服務端主動斷開?)

2. RST包的時機(在數據傳輸中?還是連接建立后?)

3. 序列號是否正確(判斷是否為異常RST)

最終發現:負載均衡器健康檢查配置錯誤,超時時間設置過短,導致正常連接被誤殺。

案例4:HTTP請求的離奇失蹤 - 應用層協議分析

問題描述

Web應用POST請求成功率只有70%,GET請求正常,開發堅持說代碼沒問題。

深度抓包

# 抓取HTTP流量并保存
tcpdump -i eth0 -A -s0 port 8080 -w http_post.pcap

# 過濾POST請求
tcpdump -r http_post.pcap -A | grep -i"post"

分析發現

# 成功的POST請求
POST/api/userHTTP/1.1
Content-Length:256
Content-Type:application/json

{"user_id":123,"name":"test"}

# 失敗的POST請求 
POST/api/userHTTP/1.1
Content-Length:512
Content-Type:application/json

{"user_id":123,"name":"test"}

問題定位:Content-Length與實際載荷不匹配!

根本原因:反向代理Nginx配置了client_max_body_size限制,但錯誤日志級別設置過高,運維沒有察覺。

案例5:DNS解析的隱形陷阱

故障現象

應用啟動后前幾分鐘正常,隨后域名解析失敗,重啟臨時解決。

DNS抓包診斷

# 抓取DNS查詢流量
tcpdump -i eth0 -nn port 53 -w dns_issue.pcap

# 分析DNS響應
tcpdump -r dns_issue.pcap -nn | grep"A?"

關鍵發現

# 正常DNS查詢
1201 IP 192.168.1.100.12345 > 8.8.8.8.53: 12345+ A? api.example.com
1201 IP 8.8.8.8.53 > 192.168.1.100.12345: 12345 1/0/0 A 203.0.113.10

# 異常DNS查詢
1201 IP 192.168.1.100.12346 > 8.8.8.8.53: 12346+ A? api.example.com
# 沒有回包!

問題根源:DNS服務器IP配置了雙棧,但IPv6路由有問題,應用隨機選擇DNS服務器導致間歇性失敗。

案例6:SSL握手的暗黑時刻

問題場景

HTTPS站點間歇性報告SSL握手失敗,瀏覽器顯示"ERR_SSL_PROTOCOL_ERROR"。

TLS抓包技巧

# 抓取SSL握手過程
tcpdump -i eth0 -nn -s0 port 443 and host web.example.com -w ssl_handshake.pcap

# 使用Wireshark分析或命令行查看
tcpdump -r ssl_handshake.pcap -nn -x

分析要點

# 正常SSL握手流程
Client Hello -> Server Hello -> Certificate -> Server Hello Done ->
Client Key Exchange -> Change Cipher Spec -> Finished

# 異常情況:在Certificate階段中斷
Client Hello -> Server Hello -> [連接斷開]

深度分析:證書鏈不完整,中間CA證書缺失,部分客戶端無法驗證。

案例7:微服務間的通信雷區

復雜場景

微服務A調用服務B,成功率95%,但失敗的5%找不到規律。

分布式追蹤抓包

# 多網卡同時抓包
tcpdump -i any -nn -s0'(src host serviceA and dst host serviceB) or (src host serviceB and dst host serviceA)'-w microservice.pcap

# 按連接分組分析
tcpdump -r microservice.pcap -nn | awk'{print $3 " -> " $5}'|sort|uniq-c

意外發現

# 正常連接
192.168.1.10.8080 -> 192.168.1.20.9090: established

# 異常連接 - 注意端口復用問題
192.168.1.10.8080 -> 192.168.1.20.9090: [端口被復用,序列號混亂]

問題本質:服務B重啟時,TCP TIME_WAIT狀態處理不當,導致端口復用沖突。

案例8:帶寬打滿的真相

告警現象

服務器帶寬使用率突然飆升到95%,但業務量沒有明顯增長。

流量分析抓包

# 按流量大小排序連接
tcpdump -i eth0 -nn -q |head-1000 | awk'{print $3}'|sort|uniq-c |sort-nr

# 抓取大流量連接詳情
tcpdump -i eth0 -nn -s0 src 192.168.1.100 -w bandwidth_hog.pcap

驚人發現

大部分流量來自一個內網IP的重復請求,仔細分析發現是負載均衡健康檢查配置錯誤,檢查間隔設置為1ms!

優化方案:調整健康檢查參數,帶寬使用率立即降到正常水平。

案例9:數據包的神秘變異

詭異現象

客戶端發送正確數據,但服務端接收到的數據被截斷或亂碼。

中間人抓包

# 在網關設備抓包
tcpdump -i eth0 -xx -s0 host client.ip and host server.ip -w packet_corruption.pcap

# 對比數據包內容
tcpdump -r packet_corruption.pcap -xx | grep"payload"

真相大白

# 客戶端發送(正確)
45 00 05 dc ... [完整數據包]

# 服務端接收(被篡改) 
45 00 05 dc ... [數據包被中間網絡設備修改]

罪魁禍首:某臺交換機固件bug,對特定模式的數據包進行了錯誤的校驗和重計算。

案例10:時間就是金錢 - 延遲分析

性能問題

API響應時間P99達到5秒,但數據庫查詢只需50ms。

時延測量抓包

# 精確時間戳抓包
tcpdump -i eth0 -ttt -nn port 8080 -w latency_analysis.pcap

# 分析往返時間
tcpdump -r latency_analysis.pcap -ttt -nn | grep"HTTP"

延遲分解

# TCP建連時間:150ms
# SSL握手時間:300ms 
# HTTP請求處理:50ms
# 網絡傳輸時間:4500ms ← 問題在這里!

最終定位:出口網關的QoS策略錯誤,將API流量標記為低優先級。

TCPDump實戰技巧總結

黃金參數組合

# 萬能抓包命令
tcpdump -i any -nn -s0 -w capture.pcap

# 參數解釋
-i any   # 監聽所有網卡
-nn    # 不解析主機名和端口名
-s0    # 抓取完整數據包
-w file  # 保存到文件

過濾器魔法

# 按主機過濾
tcpdump host 192.168.1.100

# 按端口過濾 
tcpdump port 80 or port 443

# 按協議過濾
tcpdump tcp and not ssh

# 按標志位過濾
tcpdump'tcp[tcpflags] & tcp-syn != 0'

# 組合過濾
tcpdump -i eth0 -nn'host 192.168.1.100 and (port 80 or port 443) and tcp[tcpflags] & tcp-syn != 0'

分析思維框架

網絡問題排查四步法:

1.現象描述- 準確描述問題現象,收集錯誤日志

2.假設驗證- 基于經驗提出假設,設計抓包驗證方案

3.數據分析- 深入分析抓包數據,尋找異常模式

4.根因確認- 找到根本原因,制定解決方案

抓包分析五個維度:

?連接層面:TCP三次握手、四次揮手是否正常

?傳輸層面:序列號、確認號、窗口大小變化

?應用層面:HTTP狀態碼、SSL握手過程

?時間層面:延遲分布、超時設置

?統計層面:重傳率、丟包率、連接數

進階技能點

1. 自動化分析腳本

#!/bin/bash
# 網絡問題快速診斷腳本
echo"開始網絡診斷..."

# 基礎連通性測試
ping -c 4$1> /tmp/ping.log 2>&1

# 抓包分析
timeout30 tcpdump -i any -nn -c 100 host$1-w /tmp/capture.pcap 2>/dev/null

# 分析結果
echo"=== 連通性測試 ==="
cat/tmp/ping.log

echo"=== 數據包統計 ==="
tcpdump -r /tmp/capture.pcap -nn |head-10

2. 性能監控集成

將TCPDump與監控系統結合,實現異常時自動抓包:

# Zabbix觸發器腳本示例
if[$NETWORK_ERROR_RATE-gt 5 ];then
  tcpdump -i eth0 -G 300 -W 2 -w /var/log/auto_capture_%Y%m%d_%H%M%S.pcap &
 echo"自動抓包已啟動"
fi

3. 大規模環境優化

生產環境抓包的注意事項:

? 使用環形緩沖區避免磁盤空間不足

? 合理設置過濾器減少CPU開銷

? 在網絡鏡像端口進行抓包避免影響業務

? 建立抓包數據的歸檔和清理策略

結語:掌握網絡診斷的核心武器

作為運維工程師,網絡問題永遠是我們繞不開的話題。TCPDump不僅僅是一個工具,更是我們理解網絡通信本質的窗口。

記住這些關鍵點:

? 網絡問題70%可以通過抓包快速定位

? 掌握基礎的TCP/IP協議是前提

? 培養從數據包中發現異常模式的直覺

? 建立系統化的問題排查方法論

最后的運維哲學:

當所有人都在猜測問題原因時,只有數據包不會撒謊。TCPDump讓我們成為網絡世界的偵探,每一個字節都是破案的線索。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    9

    文章

    3209

    瀏覽量

    76357
  • 網絡
    +關注

    關注

    14

    文章

    8264

    瀏覽量

    94702
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1424

    瀏覽量

    83500

原文標題:TCPDump抓包分析實戰:10個常見網絡問題排查案例

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    WiresharkTcpdump實例分析

    wireshark是開源軟件,可以放心使用。可以運行在Windows和Mac OS上。對應的,linux下的包工具是 tcpdump。使用wireshark的人必須了解網絡協議,否則就看不懂wireshark了。
    的頭像 發表于 02-01 09:31 ?4770次閱讀

    加密后分析的問題?

    請問一下,我的zigbee設備全部都開啟了加密, 使用軟件的時候,數據都是加密的,我應該怎么解密分析這些數據呢,謝謝了
    發表于 06-01 14:22

    tcpdump指定域名嗎

    tcpdump指定域名的嗎?
    發表于 05-21 04:08

    空口方式和wireshank分析工具使用介紹

    主要介紹下最近使用中感覺很萬能的空口方式和wireshank分析工具使用;目的:抓取各種設備網絡通信過程中數據,定位并分析軟硬件設計中
    發表于 01-18 09:11

    請問BLE-Dongle是否支持協議分析?請問怎么進行協議分析

    如題,請問貴司的BLE-Dongle是否支持協議分析?請問怎么進行協議分析
    發表于 09-07 07:12

    使用tcpdump后生成的pcap文件大小為0

    請大佬們幫忙看看怎么回事吧 我在SSH中使用“sudo tcpdump -i eth0 dst 192.168.0.55”命令進行,control+c停止后,使用“sudo tcpdump
    發表于 05-18 22:29

    網絡行分析工具tcpdump安裝介紹

    概述 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據進行截獲的分析工具。
    的頭像 發表于 08-18 10:05 ?9826次閱讀
    網絡行<b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b>工具<b class='flag-5'>tcpdump</b>安裝介紹

    tcpdump如何實現內核態的

    的呢?有的同學知道 tcpdump 是基于 libpcap 的,那么 libpcap 的工作原理又是啥樣的呢。如果讓你裸寫一個程序,你有沒有思路? 按照飛哥的風格,不搞到最底層的原理咱是不會罷休的。所以我對相關的源碼進行了深
    的頭像 發表于 10-08 10:34 ?3406次閱讀
    <b class='flag-5'>tcpdump</b>如何實現<b class='flag-5'>抓</b>內核態的<b class='flag-5'>包</b>

    為什么不到baidu的數據

    從上面的結果可以知道請求baidu.com時會去訪問39.156.66.10。于是用下面的tcpdump命令進行,大概的意思是eth0網卡且ip為39.156.66.10的網絡
    的頭像 發表于 01-05 10:43 ?2208次閱讀

    WiresharkTcpdump實例分析

    今天浩道跟大家分享2款網工生涯中必不可少的神器Wireshark及Tcpdump,掌握這2個神器的使用,運維排查故障基本就是如魚得水。
    的頭像 發表于 02-01 09:31 ?3172次閱讀

    Linux網絡分析tcpdump工作原理和應用

    速度太慢。 當我們工程師與用戶面對網絡問題爭執不下時,通過 tcpdump ,可以快速定位故障原因,輕松甩鍋,毫無壓力。 當我們新開發的網絡程序,沒有按照預期工作時,通過 tcpdump
    的頭像 發表于 09-28 15:30 ?1043次閱讀
    Linux網絡<b class='flag-5'>分析</b><b class='flag-5'>tcpdump</b>工作原理和應用

    Linux網絡分析tcpdump的基本用法

    $?tcpdump?-i?eth0 3. 時指定 -n 選項,不解析主機和端口名。這個參數很關鍵,會影響的性能,一般
    的頭像 發表于 09-28 15:42 ?1757次閱讀

    tcpdump常用的選項參數詳細總結

    常用選項通過上述的實戰案例,相信大家已經掌握的 tcpdump 基本用法,在這里來詳細總結一下常用的選項參數。 (一)基礎選項 -i:指定接口 -D:列出可用于的接口 -s:指定數
    的頭像 發表于 09-28 15:52 ?3793次閱讀

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的頭像 發表于 10-28 14:48 ?1261次閱讀

    Linux運維必備技能:手把手教你用tcpdump精準

    簡介 網絡數據截獲分析工具。支持針對網絡層、協議、主機、網絡或端口的過濾。并提供and、or、not等邏輯語句幫助去除無用的信息。 tcpdump - dump traffic on a
    的頭像 發表于 12-24 11:20 ?2316次閱讀