Статистика трафика по сетевому порту

Статистика трафика по сетевому порту

У меня есть две машины с двумя приложениями, которые общаются друг с другом через несколько сетевых портов (TCP и UDP). Я хочу подсчитать трафик, который они отправляют и получают. Мне нужно не только общее количество, но и статистика по машинам по портам в день. Я пробовалдаркстат, но он не предоставляет статистику за день, а только общие счетчики.

Есть ли другой способ подсчитать этот трафик (можно поставить прокси-сервер или шлюз между этими двумя машинами)?

решение1

iptables может предоставить вам статистику о том, сколько раз каждое правило было активировано, поэтому вы можете добавить правила LOG для интересующих вас портов (например, порт 20 и порт 80):

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

а потом

iptables -n -L -v

даст вам количество пакетов и байтов, отправленных через эти порты. Конечно, вам придется проанализировать из вывода порты, которые вас интересуют.

Если вам нужны точные значения, добавьте -x:

iptables -n -L -v -x

решение2

Вы можете добавить правила учета в конфигурацию iptables. Они должны быть выполнены до того, как вы примете трафик ESTABLISHED и RELATED, иначе вы не сможете подсчитать проходящий трафик. Для подсчета веб-трафика попробуйте правило типа:

iptables -A INPUT -p tcp --dport 80 

Если у вас их много, вы можете создать цепочку учета, чтобы иметь возможность составлять отчеты и обнулять счетчики по ней отдельно от других цепочек.

TheБереговая стенаБрандмауэр позволяет вам легко добавлять правила учета в ваш набор правил.

решение3

Не забудьте включить статистику исходящего трафика.

# 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

решение4

Неясно, нужно ли вам использовать IP-адрес назначения, новнстат— полезный инструмент для записи использования трафика на интерфейс. Установите его и запустите vnstat -u -i eth0для каждого интерфейса, который вы хотите отслеживать. Чтобы получить использование за день, используйте vnstat -i eth0 -d.

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