Проверка количества подключений к портам 80 и 443 веб-сервера.

Как сказано в заголовке, как можно проверить количество открытых подключений к веб-серверу на порте 80 и 443?

В настоящее время я использую этот oneliner, чтобы получить количество открытых подключений на IP-адрес с порта 80:

netstat -tn 2>/dev/null | 
    grep :80 | 
    grep -i established |
    awk '{print $5}' | 
    cut -d: -f1 | 
    sort | 
    uniq -c | 
    sort -nr | 
    head

Как добавить номер порта 443 к этому запросу? Я пробовал следующее :

netstat -tn 2>/dev/null | 
    grep ':80/|:443' | 
    grep -i established |
    awk '{print $5}' | 
    cut -d: -f1 | 
    sort | 
    uniq -c | 
    sort -nr | 
    head

но в итоге я получил 0 результатов, я что-то сделал не так?

0
задан 7 June 2016 в 15:13
1 ответ

Попробуйте

netstat -ant | egrep '(:80|:443) .*:.*ESTABLISHED' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

или

netstat -nt | awk '$4 ~ /:(143|993)$/ && $6 ~ /ESTABLISHED/ {print $5}' | cut -d: -f1 | sort | uniq -c
  • netstat -nt перечисляет TCP-соединения без DNS поиска IP-адреса
  • egrep ':(80|443) .*:. *ESTABLISHED" выбирает ESTABLISHED соединения на портах 80, ограничиваясь локальным адресом
  • 'awk {print $5}' разделяет удаленный адрес и порт
  • cut -d: -f1 удаляет порт
  • sort | uniq -c считает uniq ips

  • awk '$4 ~ /: (80|443)$/ && $6 ~ /ESTABLISHED/ {print $5}' выбирает удаленный ip для ESTABLISHED соединений с локальными портами 80 и 443

Правка:

Если вы хотите считать соединения по IP, вы можете использовать {print $4, $5} в заявлении для печати.

Вы можете установить соответствие в разных или нескольких состояниях, изменив соответствие на $6, например, /(ESTAB|SYN)/, что будет включать в себя открывающие соединения.

3
ответ дан 4 December 2019 в 12:23

Теги

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