Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux HTTP 流量嗅探神器 httpry 實戰:即時抓包、離線分析與進階腳本

編輯:關於 Linux

需要即時觀察 HTTP 請求/回應、除錯 REST API、排查惡意下載、或分析代理自動配置(PAC)?httpry 專為 HTTP 協議設計,比 tcpdump 更易讀、比 ngxtop 不需存取日誌、比 Wireshark 更輕量。本文涵蓋安裝、即時抓包、儲存/回放、方法過濾、Perl 腳本深度分析完整流程。

安裝 httpry

Debian / Ubuntu / Linux Mint(源碼編譯,倉庫常無)

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

RHEL / CentOS / Rocky / AlmaLinux / Fedora

# 啟用 EPEL (RHEL/CentOS)
sudo dnf install -y epel-release   # Fedora 不需要
sudo dnf install -y httpry

# 或源碼編譯(版本較新)
sudo dnf install -y gcc make git libpcap-devel
git clone https://github.com/jbittel/httpry.git
cd httpry && make && sudo make install

Arch / Manjaro

sudo pacman -S httpry

基礎用法:即時抓包顯示

# 指定網卡介面(用 ip link 或 ifconfig 確認名稱,如 eth0、ens33)
sudo httpry -i eth0

輸出範例(即時滾動):

2024-01-15 10:30:45  192.168.1.100  192.168.1.200  >  GET  https://example.com/api/users  HTTP/1.1
2024-01-15 10:30:45  192.168.1.200  192.168.1.100  <  HTTP/1.1  200 OK  application/json

欄位:時間、來源 IP、目的 IP、方向(> 請求 / < 回應)、方法、URL、版本、狀態碼、Content-Type。

儲存與離線分析

二進制原始封包(可回放)

# 儲存
sudo httpry -i eth0 -b output.dump

# 回放(無需 root)
httpry -r output.dump

人類可讀文本

sudo httpry -i eth0 -o output.txt

進階過濾與格式化

參數功能範例
-m過濾 HTTP 方法sudo httpry -i eth0 -m get,post,put
-d背景執行(daemon 模式)sudo httpry -i eth0 -d -o /var/log/httpry.log
-f自訂輸出格式(參考 man httpry)sudo httpry -i eth0 -f "timestamp,source-ip,dest-ip,method,url"
-n不解析主機名(加快速度)sudo httpry -i eth0 -n
-q安靜模式(不輸出到 stdout)配合 -o 或 -b 使用

內建 Perl 分析腳本:scripts/plugins/

原始碼目錄 httpry/scripts/plugins/ 含多個即用腳本:

腳本功能
hostnames.pl統計唯一主機名與數量
find_proxies.pl偵測 Web 代理
search_terms.pl提取搜尋引擎關鍵字
content_analysis.pl搜尋 URL 中的關鍵字
xml_output.pl轉換為 XML 格式
log_summary.pl產生日誌摘要報表
db_dump.pl匯入 MySQL 資料庫(需 DBI/DBD::mysql)

使用方式

# 1. 先擷取一段流量存成文本
sudo httpry -i eth0 -o /tmp/httpry.log -t 300   # 抓 5 分鐘

# 2. 執行分析腳本
cd httpry/scripts
perl parse_log.pl -d ./plugins /tmp/httpry.log

完成後在 scripts/ 目錄產生 *.txt/*.xml 報告,如 log_summary.txt:

Total requests: 12,345
Unique hosts: 87
Top 10 URLs: ...
Method distribution: GET 85%, POST 12%, HEAD 3%
Response codes: 200 11,200 | 304 800 | 404 200 | 500 45

實戰場景範例

場景一:除錯 REST API 回應異常

sudo httpry -i eth0 -m get,post -f "timestamp,method,url,status-code,content-type" | grep "/api/v1/orders"

場景二:尋找可疑下載(惡意軟體、大檔案)

sudo httpry -i eth0 -o /tmp/traffic.log
# 事後分析
grep -E "\.(exe|apk|sh|php|jar)(\?|$)" /tmp/traffic.log
awk '$NF > 1000000' /tmp/traffic.log   # 依 Content-Length 找大檔案

場景三:排查 PAC/WPAD 自動代理問題

sudo httpry -i eth0 -m get -f "method,url" | grep -E "(wpad|proxy\.pac|pac\.js)"

與 tcpdump/Wireshark 互補使用

  • tcpdump -i eth0 -w http.pcap port 80 → Wireshark 深度分析 TCP 重傳、握手、TLS 解密。
  • httpry → 快速掌握 HTTP 語義層面(方法、URL、狀態碼、Header)。
  • 兩者可同時跑:tcpdump 存 pcap,httpry 即時看或存文本。

注意事項

  • 需 root 權限開啟網卡混雜模式(-i)。
  • HTTPS 流量加密,httpry 只能看到 TLS 握手、SNI、流量大小,無法解密應用層內容(除非具備私鑰並配合 Wireshark)。
  • 高流量環境(>1Gbps)可能掉包,建議配合 PF_RING、DPDK 或專用網卡。
  • 生產環境抓包請遵循資安政策、隱私法規(GDPR、個資法),避免記錄敏感資料。

httpry 以「專注 HTTP、輕量、可腳本化」填補了 tcpdump 與 Wireshark 之間的空白。無論是開發除錯、安全審計、流量審計,幾條指令即可獲得可讀、可分析的 HTTP 流量資料,是 Linux 系統管理員與開發者工具箱的必備利器。

Copyright © Windows教程網 All Rights Reserved