Как подсчитать входящие и исходящие сетевые соединения в Linux

Как подсчитать входящие и исходящие сетевые соединения в Linux

Я хочу отслеживать количество входящих и исходящих сетевых подключений. Я могу получить общее количество с помощью netstatи wc -l, но я хочу знать, сколько входящих и сколько исходящих.

решение1

Это можно сделать с помощью ip_conntrack.

modprobe ip_conntrack
cat /proc/net/ip_conntrack

Установленные соединения, исходный адрес которых совпадает с адресом вашего интерфейса, являются исходящими соединениями.

Установленные соединения, адрес назначения которых совпадает с адресом вашего интерфейса, являются входящими соединениями.

# Number of outgoing connections
cat /proc/net/ip_conntrack | grep "ESTABLISHED" | grep "src=xxx.xxx.xxx.xxx" | wc -l

# Number of incoming connections
cat /proc/net/ip_conntrack | grep "ESTABLISHED" | grep "dst=xxx.xxx.xxx.xxx" | wc -l

(xxx.xxx.xxx.xxx — это, очевидно, IP-адрес вашего интерфейса)

Помните, что существуют соединения, которые возникают для межпроцессного взаимодействия между приложениями, работающими в вашей системе.

Вы можете найти информацию о записях ip_conntrackздесь.

решение2

С помощью iftop вы можете отслеживать все входящие и исходящие соединения.

http://www.ex-parrot.com/pdw/iftop/

Если вы хотите получить статистику

http://www.ntop.org/products/ntop/

Связанный контент