Как видно из названия, как можно проверить количество открытых подключений к веб-серверу на порту 80 и 443?
В настоящее время я использую этот oneliner, чтобы получить количество открытых подключений на ipaddress с порта 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 результатов, я сделал что-то не так?
Пытаться
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'
выбирает УСТАНОВЛЕННЫЕ соединения на портах 80, ограничиваясь локальным адресом'awk {print $5}'
разделяет удаленный адрес и портcut -d: -f1
удаляет портsort | uniq -c
считает uniq ips
awk '$4 ~ /:(80|443)$/ && $6 ~ /ESTABLISHED/ {print $5}'
выбирает удаленный ip для УСТАНОВЛЕННЫХ подключений к локальным портам 80 и 443
Редактировать:
Если вы хотите подсчитывать соединения по IP, вы можете использовать {print $4, $5}
в заявлении для печати.
Вы можете сопоставить разные или несколько состояний, изменив сопоставление для $6
, Такие как /(ESTAB|SYN)/
который будет включать открытие соединений.