無論是調試 REST API、排查 Web 洩漏、分析惡意軟件下載行為,還是單純想看看網絡裡跑了什麼 HTTP 請求,httpry 都是比 tcpdump 更直觀、比 Wireshark 更輕量的選擇。它專注於 HTTP 協議層,實時解析並以人類可讀格式輸出請求/響應頭、方法、URL、User-Agent 等關鍵字段。本文涵蓋安裝、基礎/進階用法、數據導出與插件分析全流程。
grep/awk 管道處理,Perl 插件系統支援二次開發。sudo apt update
sudo apt install -y gcc make git libpcap-dev
git clone https://github.com/jbittel/httpry.git
cd httpry
make
sudo make install
sudo dnf install -y epel-release # CentOS/RHEL 需此步
sudo dnf install -y httpry
或同樣用源碼編譯 (替換 libpcap-devel)。
# 指定網卡 (用 ip link 或 ifconfig 確認名稱,如 eth0, ens33)
sudo httpry -i eth0
輸出示例:
2024-05-20 14:32:11 192.168.1.5 192.168.1.100 > GET https://example.com/api/v1/users HTTP/1.1
2024-05-20 14:32:11 192.168.1.100 192.168.1.5 < HTTP/1.1 200 OK application/json 1024
欄位含義: 時間戳 | 源IP | 目的IP | 方向(>請求/<響應) | 方法/狀態碼 | URL/原因短語 | 協議版本 | Content-Type | Content-Length
# 僅捕獲 GET 和 HEAD
sudo httpry -i eth0 -m get,head
| 模式 | 命令 | 用途 |
|---|---|---|
| 二進制原始包 | 離線回放、Wireshark 深度分析、證據保全 | |
| 文本日誌 | 文本檢索、腳本處理、長期歸檔 |
回放二進制文件 (無需 root):
httpry -r traffic.dump
源碼目錄 scripts/plugins/ 預置多種分析腳本:
hostnames:統計唯一主機名與計數find_proxies:檢測代理特徵 (Via、X-Forwarded-For 等)search_terms:提取搜索引擎關鍵詞content_analysis:關鍵詞 URL 過濾xml_output:轉換為 XML 便於程式解析log_summary:生成流量摘要報告db_dump:導入 MySQL 做歷史查詢
生成文件示例:
log_summary.txt:總請求數、唯一主機數、Top 10 URL、狀態碼分布等hostnames.txt:主機名清單search_terms.txt:搜索詞統計xml_output.xml:結構化數據
| 場景 | 命令範例 |
|---|---|
| 調試 API 介面 | |
| 排查惡意下載 | |
| 監控特定域名 | |
| 導入 ELK Stack | |
| 容器網絡抓包 |
CAP_NET_RAW 或 root;讀取 dump 文件不需要。-o 或 -b 落盤。mitmproxy (中間人) 或導入會話密鑰至 Wireshark。drop 統計:運行時按 Ctrl+C 會顯示丟包統計,若 drop 非零,說明內核緩衝區溢出,需增大 /proc/sys/net/core/netdev_max_backlog 或使用 -b 寫入磁盤。httpry 以「專注 HTTP、輕量高效、輸出多樣」填補了 tcpdump 過於底層與 Wireshark 過於笨重之間的空白。掌握 -m 過濾、-b/-o 持久化、插件分析三大核心技能,即可應對 90% 的 HTTP 流量排查場景。下次遇到「為什麼這個 API 返回 500?」時,打開 httpry,真相就在數據包裡。