Thống kê lưu lượng trên mỗi cổng mạng


15

Tôi có hai máy với hai ứng dụng nói chuyện với nhau trên một số cổng mạng (TCP và UDP). Tôi muốn đếm lưu lượng truy cập mà họ gửi và nhận. Tôi không chỉ cần tổng số mà cả số liệu thống kê trên mỗi máy mỗi cổng mỗi ngày. Tôi đã thử darkstat , nhưng nó không cung cấp số liệu thống kê mỗi ngày, mà chỉ có các bộ đếm tổng thể.

Có cách nào khác để tôi có thể đếm lưu lượng đó không (tôi có thể đặt một số proxy hoặc cổng giữa hai máy đó).

Câu trả lời:


16

iptables có thể cung cấp cho bạn số liệu thống kê về số lượng mỗi quy tắc được kích hoạt, vì vậy bạn có thể thêm quy tắc LOG trên các cổng quan tâm (giả sử cổng 20 & cổng 80):

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

và sau đó

iptables -n -L -v

sẽ cung cấp cho bạn số lượng gói và byte được gửi qua cổng này. Tất nhiên bạn sẽ phải phân tích cú pháp từ đầu ra các cổng mà bạn quan tâm.

Nếu bạn cần các giá trị chính xác, hãy thêm một -x:

iptables -n -L -v -x

4
Không cần đặt LOGquy tắc (sẽ làm ngập các tệp nhật ký của bạn), chỉ cần đếm số lần quy tắc được kích hoạt.
Gilles 'SO- ngừng trở nên xấu xa'

4
Thật. Một quy tắc không cần phải có một hành động. Một bài học hữu ích để học: quy tắc mà không -Jtốt cho kế toán.
Alexios


2

Bạn có thể thêm các quy tắc kế toán vào cấu hình iptables của bạn. Những điều này sẽ xảy ra trước khi bạn chấp nhận lưu lượng truy cập THÀNH LẬP và LIÊN QUAN hoặc bạn sẽ bỏ lỡ việc đếm lưu lượng đi qua. Để đếm lưu lượng truy cập web, hãy thử một quy tắc như:

iptables -A INPUT -p tcp --dport 80 

Nếu bạn có một nhóm trong số họ, bạn có thể muốn tạo một chuỗi kế toán để bạn có thể báo cáo và không có bộ đếm nào trên chuỗi đó tách biệt với các chuỗi khác.

Các Shorewall tường lửa cho phép bạn dễ dàng thêm các quy tắc kế toán để thiết lập quy tắc của bạn.


1

Đừng quên bao gồm số liệu thống kê lưu lượng truy cập đầu ra.

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443

0

Sử dụng tcpdump,

tcpdump -i bất kỳ -nnn

các đầu ra của lệnh trên sẽ bao gồm dấu thời gian, địa chỉ ip src / Dest, cổng và chiều dài gói. Với những thông tin đó, bạn có thể đạt được mục tiêu của mình một cách dễ dàng bằng một kịch bản được viết tốt.


0

Không rõ liệu bạn có cần sử dụng cho mỗi IP đích hay không, nhưng vnstat là một công cụ hữu ích để ghi lại mức sử dụng lưu lượng trên mỗi giao diện. Cài đặt nó và sau đó chạy vnstat -u -i eth0cho từng giao diện bạn muốn theo dõi. Để sau đó có được việc sử dụng mỗi ngày sử dụng vnstat -i eth0 -d.


1
Tôi không nghĩ rằng sử dụng vnstattôi có thể nhận được stat trên mỗi cổng ... Hay tôi sai?
pbm

1
@pbm À, ý bạn là cổng TCP / UDP. Không, vnstat sẽ không làm điều đó.
mgorven
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.