Theo dõi số byte được chuyển đến / từ địa chỉ IP trên cổng


19

Bất cứ ai cũng có thể giới thiệu một công cụ dòng lệnh linux để giám sát số lượng byte được truyền giữa máy chủ cục bộ và một địa chỉ / cổng IP được chỉ định.

Lệnh tcpdump tương đương sẽ là:

tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com

đầu ra nào:

46 packets captured
131 packets received by filter
0 packets dropped by kernel

Tôi muốn một cái gì đó tương tự mà đầu ra:

54 bytes out, 176 bytes in

Tôi muốn nó hoạt động trên RHEL và là nguồn mở / miễn phí. Sẽ thật tốt nếu có một công cụ hiện có mà tôi cũng đang thiếu!

Câu trả lời:


14

Bạn có thể sử dụng iptables. Nếu bạn chưa sử dụng nó, bạn có thể sử dụng cấu hình Chấp nhận mở, nhưng có một quy tắc để thực hiện việc đếm.

Ví dụ: trên RHEL, /etc/sysconfig/iptablestệp của bạn có thể trông giống như:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -j INPUT
-A INPUT -s 10.10.1.1 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -d 10.10.1.1 -p tcp -m tcp --dport 80 -j ACCEPT

Trong đó 10.10.1.1:80 là máy chủ: cổng bạn muốn đếm lưu lượng truy cập (bạn không thể sử dụng tên máy chủ). Sau đó, bạn có thể kiểm tra lưu lượng được tính bằng lệnh iptables -nvxLlà root.

Ví dụ đầu ra:

Chain INPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       10.10.1.1            0.0.0.0/0              tcp spt:80


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
       0          0 INPUT      all  --  *      *       0.0.0.0/0            0.0.0.0/0       

Chain OUTPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.1              tcp dpt:80

7
Nó cũng hoàn toàn hợp pháp khi có một quy tắc không có mục tiêu, chỉ dành cho mục đích đếm, ví dụ: iptables -A INPUT -d 1.2.3.4 -p tcp --dport 3456. Nó sẽ không làm bất cứ điều gì đối với lưu lượng truy cập, vì không có đối số "-j", nhưng mỗi gói phù hợp sẽ làm giảm số lượng.
MadHatter hỗ trợ Monica

9

Tôi đã định đề xuất wireshark (vì đó là nhiều tính năng ' hội thoại '), nhưng nó không phải là một công cụ dòng lệnh. Mặc dù vậy, bạn có thể thử tshark , đây là một công cụ phân tích dòng lệnh được đóng lại với wireshark. Đầu ra phải có (phần nào) những gì bạn đang tìm kiếm (ví dụ bên dưới):

tshark -R "ip.addr == 10.2.3.67" -z conv,ip -p -f "tcp port 22"

Kết quả:

                                     |       <-      | |       ->      | |     Total     |
                                     | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
10.2.3.23           <-> 10.2.3.67        42     15341      35      4890      77     20231

7

Ngoài ra còn có một công cụ gọi là 'iftop' hiển thị mức sử dụng băng thông trên giao diện của máy chủ. Tôi nghĩ iftop có thể làm những gì bạn mô tả nhưng thông thường giao diện của nó giống như 'top'.

Vì vậy, với ví dụ của bạn, tôi nghĩ rằng bạn chỉ có thể tạo tệp cấu hình để cung cấp mã bộ lọc của mình.

Vì vậy, đây là mã bộ lọc của tôi trong tập tin cấu hình của tôi.

$ cat /tmp/conf
filter-code: port http and host google.com

Sau đó, tôi chạy như sau để xem mạng buôn.

$ sudo iftop -c /tmp/conf

Không chắc chắn nếu đây là lựa chọn tốt nhất nhưng chắc chắn là một cách để đạt được những gì bạn cần. HTH.


3
Bạn cũng có thể chỉ định bộ lọc trên dòng lệnh mà không cần sử dụng tệp cấu hình:iftop -f 'port 80 and host google.com'
gioele

Op giống như tổng số byte được truyền, không phải băng thông. Có iftopthể cho thấy điều đó?
arainone

3

Bạn cũng có thể thử "iptraf" nó nhẹ và đơn giản. Nó có thể lọc theo cổng và cung cấp cho bạn thông tin cấp cao, không có dữ liệu tải trọng, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.