Để giám sát lưu lượng HTTP giữa máy chủ và máy chủ web, tôi hiện đang sử dụng tcpdump
. Điều này hoạt động tốt, nhưng tôi muốn loại bỏ một số dữ liệu thừa trong đầu ra (tôi biết tcpflow
và wireshark
, nhưng chúng không có sẵn trong môi trường của tôi).
Từ tcpdump
trang người đàn ông:
Để in tất cả các gói HTTP IPv4 đến và từ cổng 80, tức là chỉ in các gói có chứa dữ liệu, ví dụ, các gói SYN và FIN và các gói chỉ ACK.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Lệnh này
sudo tcpdump -A 'src example.com và cổng tcp 80 và (((ip [2: 2] - ((ip [0] & 0xf) << 2)) - ((tcp [12] & 0xf0) >> 2) )! = 0) '
cung cấp đầu ra sau:
19: 44: 03.529413 IP 192.0.32.10.http> 10.0.1.6.52369: Cờ [P.], seq 918827135: 918827862, ack 351213824, thắng 4316, tùy chọn [nop, nop, TS val 4093273405
E ..... @ ....... .... P..6.0 ......... D ...... __ .. e = 3 ...__ HTTP / 1.1 Máy chủ 200 OK: Apache / 2.2.3 (Mũ đỏ) Loại nội dung: text / html; bộ ký tự = UTF-8 Ngày: Thứ bảy, 14 tháng 11 năm 2009 18:35:22 GMT Tuổi: 7149
Nội dung Độ dài: 438<HTML> <Head> <TITLE> Trang web mẫu </ TITLE> </ HEAD> <body>
<p> Bạn đã truy cập trang web này ... </ p> </ BODY> </ HTML>
Điều này là gần như hoàn hảo, ngoại trừ phần nổi bật. Đây là gì, kết thúc - quan trọng hơn - làm thế nào để tôi thoát khỏi nó? Có lẽ đó chỉ là một chút tinh chỉnh cho biểu thức ở cuối lệnh?