URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6622
[ Назад ]

Исходное сообщение
"програмка, следящая за состоянием TCP соединений"

Отправлено tester , 24-Июл-07 16:34 
Подскажите пожалуйста: Нужна програмка(Linux), которая следила бы за состоянием
TCP соединений на сервере. У меня есть несколько сервисов,
ожидающих соединения с клиентами. Мне нужно узнавать по каждому из них:
1)Момент установления соединения. 2)Момент разрыва соединения.
Желательно что-то попроще. Чтоб я мог разобраться в исходниках. Или подскажите: как реализовать...куда копать. А то пока очень слаб в этом. Спасибо.

Содержание

Сообщения в этом обсуждении
"програмка, следящая за состоянием TCP соединений"
Отправлено vic , 24-Июл-07 17:00 
>Подскажите пожалуйста: Нужна програмка(Linux), которая следила бы за состоянием
>TCP соединений на сервере. У меня есть несколько сервисов,
>ожидающих соединения с клиентами. Мне нужно узнавать по каждому из них:
>1)Момент установления соединения. 2)Момент разрыва соединения.
>Желательно что-то попроще. Чтоб я мог разобраться в исходниках. Или подскажите: как
>реализовать...куда копать. А то пока очень слаб в этом. Спасибо.

Кое что можно взять из вывода netstat -s.

А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.


"програмка, следящая за состоянием TCP соединений"
Отправлено masted , 25-Июл-07 06:59 
>А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя
>можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или
>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.

Эка вас на снифферы понесло :)
Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже отслеживать соединения.
Самый простой вариант, это inetd.



"програмка, следящая за состоянием TCP соединений"
Отправлено vic , 25-Июл-07 18:22 
>>А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя
>>можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или
>>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.
>
>Эка вас на снифферы понесло :)
>Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже
>отслеживать соединения.
>Самый простой вариант, это inetd.

Конечно проще, вот только условия задачи могут не позволять использовать прокси (задача же не полностью описана).


"програмка, следящая за состоянием TCP соединений"
Отправлено tester , 26-Июл-07 00:33 
>[оверквотинг удален]
>>>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>>>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.
>>
>>Эка вас на снифферы понесло :)
>>Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже
>>отслеживать соединения.
>>Самый простой вариант, это inetd.
>
>Конечно проще, вот только условия задачи могут не позволять использовать прокси (задача
>же не полностью описана).

Спасибо за советы! Пока я остановился на програмке ss из iproute2. Делает почти то, что мне и нужно. Буду ковырять.
Еще раз спасибо.