這里寫目錄標題
- 1. 使用 tcpdump(原始報文捕獲)
- 觀察:
- 報文翻譯與分析(按行解釋)
- 第一段:客戶端請求報文
- HTTP 請求頭
- JSON 請求體
- 第二段:服務器響應報文
- HTTP 響應頭
- 響應體
- 關鍵問題分析
在 Linux 上監聽 HTTP 端口的報文,有多種工具可以實現。以下是幾種常用方法的詳細說明:
1. 使用 tcpdump(原始報文捕獲)
安裝(如未安裝):
sudo apt install tcpdump # Debian/Ubuntu
sudo yum install tcpdump # CentOS/RHEL
監聽 HTTP 端口(80):
sudo tcpdump -i any -A -s0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
- -i any:監聽所有網卡。
- -A:以 ASCII 格式打印報文內容(可讀的 HTTP 文本)。
- -s0:捕獲完整數據包(避免截斷)。
- 過濾表達式:只顯示 HTTP 負載(跳過空包)。
監聽的報文如下,請幫我(非專業運維人員)翻譯和分析各項的含義:
15:24:55.356938 IP 222.223.250.226.synel-data > k8s01.31170: Flags [P.], seq 1589037497:1589038667, ack 655460479, win 229, length 1170
E.....@.?.............y.^...'...P.......POST /ais/bot/openapi/dcc/dialog HTTP/1.0
Host: stdai.sjzwltszkj.com
X-Real-IP: 222.223.250.233
X-Forwarded-For: 222.223.250.233
X-Forwarded-Proto: https
X-Original-URI: /api/dcc/dialog
Connection: close
Content-Length: 540
Authorization: Signature keyId="Fnrk6FDwdPe5uyHGmcvp",algorithm="hmac-sha256",headers="@request-target x-date x-tenantid x-userid x-source",signature="y07R24YL0glgfzkBVwZRYMZ4r8MlEF/zSRZsBLrR8Xk="
x-source: KS
x-userid: 8616349643650957312
x-tenantid: sjz
x-date: Mon, 07 Jul 2025 07:23:07 GMT
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip
User-Agent: okhttp/4.12.0{"variableMap":null,"agentCode":"agent1048486107377569792","channelId":null,"chatType":"chat","query":"...........................","content":"...........................","sessionId":"845b0b19-5b2f-4c4b-96ea-fbfb3f6ca46f","messageId":"59e93a9d-67a2-4e14-8556-e7aaeb6cb864","userId":"86163496436509