Подсчет байтов по портам

Все остальные ответы обсуждают предложенное вами решение, но я бы хотел предположить, что это проблема XY. Вероятно, вы ищете надежный программный способ проверить, удалось ли завить или нет. Для этого вы должны просто добавить -f :

curl -fqI http://www.example.com

Это завершается с кодом 0 при успехе и ненулевым при любом сбое (включая ошибки сервера, которые успешно завершают сеанс HTTP, но сообщают об ошибке HTTP. ). В сценарии оболочки, например, вы можете получить доступ к этому коду выхода с помощью $? сразу после команды, если вы хотите сохранить его в переменной, или использовать оболочки, если / && / || для условного выполнения другого кода:

if curl -fqI http://www.example.com
then echo 1
else echo 0
fi

Если цель действительно состоит в том, чтобы просто напечатать успех / неуспех, большинство оболочек имеют возможность автоматически отображать ненулевые коды выхода; например, в zsh с setopt printexitvalue в вашем ~ / .zshrc вы увидите что-то вроде этого (вывод curl подавлен, чтобы выделить интересный бит):

% curl -fqI http://www.example.com >/dev/null 2>&1 
% curl -fqI http://www.aoeuaoeuaoeuaoeu.com >/dev/null 2>&1
zsh: exit 6     curl -fqI http://www.aoeuaoeuaoeuaoeu.com > /dev/null 2>&1
1
17.03.2016, 02:12
2 ответа

Это интерактивно? Для этого я использую iptraf .

iptraf screenshot

Попробуйте:

    # yum install iptraf
1
27.01.2020, 23:48

Iptables по умолчанию (по моему опыту) считает пакеты, сопоставленные с его правилами, вам не нужно настраивать это.
По умолчанию он сбрасывается при перезагрузке, но я считаю, что вы можете настроить что-нибудь, чтобы запомнить счетчик.
Поскольку это все равно происходит, я не понимаю, как вы собираетесь «замедлить работу брандмауэра», вы запрашиваете только информацию, которая уже была получена в iptables.

Для просмотра текущего количества пакетов / байтов iptables:

[sudo] iptables -nvL | grep -v '0    0'

Объяснение

  • -n - не выполнять поиск в DNS
  • -L - список правил - по умолчанию отображаются все цепочки (в таблице фильтров )
  • -v - это то, что дает информацию о совпадении и количество байтов

По умолчанию команда nvL показывает все правила, которые определены, даже если количество совпадений равно 0, поэтому grep -v просто удаляет эти строки.

Если вам нужно что-то еще «в реальном времени», вы можете заключить команду в оператор watch

watch "[sudo] iptables -nvL | grep -v '0    0'"
0
27.01.2020, 23:48

Теги

Похожие вопросы