У меня есть сайт с видеоконтентом (файлы mp4).
Когда люди смотрят видео, они загружают видеофайлы с моего сайта. Я хочу узнать количество активных подключений через терминал Linux. Скорее всего, это TCP-пакеты на 80-м порту.
Однако:
$ netstat -an |grep :80 | wc -l
дает огромное число, ~ 6-7k. Я не думаю, что это правильно?
netstat
в Linux устарел и был заменен на ss
, который вы должны использовать вместо него.
Что-то вроде этого должно дать вам то, что вы хотите:
$ ss -H state established '( sport = :https )' | wc -l
21
Это выбирает соединения на порту 443, которые в настоящее время установлены, т. Е. Подключены к удаленному хосту, за исключением тех, которые находятся в процессе закрытия.
netstat -an
предоставит вам активные соединения вместе со ВСЕМ остальным. Сюда входят такие вещи, как прослушивание портов и т. Д.
Если вы ограничены использованием только netstat, вы сможете подсчитать количество установленных подключений, используя что-то вроде:
netstat -an | grep -w "<listening ip>:80" | grep ESTABLISHED | wc -l
, что немного похоже на взлом, но работает просто подсчитав количество установленных подключений, поступающих на ваш IP-адрес прослушивания, на порту 80.
Если вы можете установить ss или он уже установлен:
ss -nt dst <ip webserver is listening on>:80 | wc -l
Вышеупомянутое должно дать вам количество всех подключений к месту назначения вашего прослушивающего IP-адреса на порту 80.
Если вы ищете уникальные соединения, вы можете даже сузить его, используя «sort», а затем «uniq -c» (предшествующий «wc -l»), чтобы получить счет к уникальным связям.
ss очень полезен: https://linux.die.net/man/8/ss