Проверьте количество активных соединений на порту 80?

27

У меня есть веб-сервер, мне нужно проверить количество соединений на моем сервере в данный момент,

я использовал следующее

netstat -anp |grep 80 |wc -l

это вернулось с

2542

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

is this correct ? 
if not how to i get the active number of connections ? 
is this sign of a victim of DOS attack how do i know that ?
user1179459
источник
С ssвы можете выбирать порт и указать немного быстрее: ss -nt dport == :80 and state connected.
Eckes
Количество подключений не является количеством пользователей. Каждый пользовательский браузер может открывать несколько подключений одновременно. Напротив, хотя и реже, несколько пользователей, использующих один и тот же прокси, могут появляться только через одно соединение.
Патрик Мевзек

Ответы:

50

Попробуйте просто посчитать УСТАНОВЛЕННЫЕ соединения:

netstat -anp | grep :80 | grep ESTABLISHED | wc -l

Кроме того, будьте осторожны, чтобы не использовать двоеточие в своем выражении port grep. Поиск 80 может привести к ошибочным результатам для pids и других портов, в которых символы 80 выводятся.

d34dh0r53
источник
5
grep -w 80решает эту проблему и устраняет такие вещи, как 8093.
Майкл Хэмптон
1
да, вы правы: 80 может также вводить ложные срабатывания.
d34dh0r53
@MichaelHampton Оба grep -w 80 и: 80 также будут считать исходящие http-соединения, если таковые имеются. netstat -ntp | awk '{print $ 4}' | grep -w 80. И да, меня слишком волнует цвет велосипеда :) :).
Этот улучшен ... netstat -an | grep -w 80 | grep -i создан | awk {'print $ 5'} | cut -d: -f1 | сортировать | uniq -c | sort -n
user169015
2

Принимая @ d34dh0r53 ответ на один шаг «дальше» (к ответу с «более широкой» перспективой), вы также можете проверить все соединения, отсортированные по их состоянию, следующим образом:

netstat -ant | grep :<port_num> | awk '{print $6}' | sort | uniq -c | sort -n

например:

netstat -ant | grep :8000 | awk '{print $6}' | sort | uniq -c | sort -n

Возможный вывод может быть:

1 CLOSING
1 established
1 FIN_WAIT2
1 Foreign
2 CLOSE_WAIT
6 FIN_WAIT1
7 LAST_ACK
7 SYN_RECV
37 ESTABLISHED
44 LISTEN
297 TIME_WAIT

Надеюсь, что это поможет, и, пожалуйста, просмотрите любые разработки и / или комментарии, которые у вас есть по поводу выше.

Ура,

Guy.

Гай Авраам
источник
1

Вы можете просто указать свой IP-адрес вместо того, чтобы беспокоиться о соединении нескольких greps, seds и awks вместе.

netstat -anp | grep -c $(hostname -i):80

Использование $(hostname -i)позволит использовать эту команду на любом боксе, статическом / динамическом IP и так далее.

Gryd3
источник
0
ss -tn src :80 or src :443

Это покажет все соединения с локальными портами 80 или 443 (добавьте / измените порт (ы), если необходимо).

Отказ от ответственности: я понимаю, что это старый вопрос, но он по-прежнему лучший результат в Google, поэтому я думаю, что он заслуживает ответа с использованием современных утилит.

Iskren
источник