Я хочу отслеживать количество входящих и исходящих сетевых подключений. Я могу получить общее количество с помощью 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/
Если вы хотите получить статистику