В этой небольшой заметке мы хотели бы показать, как легко отобразить IP всех подключенных пользователей к нашему HTTP или HTTPS серверу под Linux (Debian / Ubuntu и т.д.).
Cписок IP-адресов пользователей
Быстрое решение (введите в командной строке):
1 | ss -n state established src :80 or src :443 |
Где:
- -n вызывает отображение используемых портов в виде номеров (имена служб не разрешаются)
- state established отображает только установленные соединения
- src :80 или src :443 - отображение только портов: 80 или 443 - порты, на которых запущены наши серверы.
Пример вывода:
Где:
- Netid - тип сокета (например, TCP, UDP и т.д.)
- Recv-Q - количество принятых пакетов в очереди
- Send-Q - количество отправленных пакетов в очереди
- Local Address:Port - адрес и порт локальной машины
- Peer Address:Port - адрес и порт удаленной машины (указывается IP-адрес подключенного пользователя).
Лучше не использовать команду netstat, так как она помечена как устаревшая.
Режим наблюдения
Мы можем следить за подключенными пользователями с помощью команды watch -n N.
1 | watch -n 1 ss -a -n state established src :80 или src :443 |
watch -n 1 вызывает обновление состояния раз в 1с.