Подскажите пожалуйста: Нужна програмка(Linux), которая следила бы за состоянием
TCP соединений на сервере. У меня есть несколько сервисов,
ожидающих соединения с клиентами. Мне нужно узнавать по каждому из них:
1)Момент установления соединения. 2)Момент разрыва соединения.
Желательно что-то попроще. Чтоб я мог разобраться в исходниках. Или подскажите: как реализовать...куда копать. А то пока очень слаб в этом. Спасибо.
>Подскажите пожалуйста: Нужна програмка(Linux), которая следила бы за состоянием
>TCP соединений на сервере. У меня есть несколько сервисов,
>ожидающих соединения с клиентами. Мне нужно узнавать по каждому из них:
>1)Момент установления соединения. 2)Момент разрыва соединения.
>Желательно что-то попроще. Чтоб я мог разобраться в исходниках. Или подскажите: как
>реализовать...куда копать. А то пока очень слаб в этом. Спасибо.Кое что можно взять из вывода netstat -s.
А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.
>А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя
>можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или
>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.Эка вас на снифферы понесло :)
Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже отслеживать соединения.
Самый простой вариант, это inetd.
>>А вообще сервисы сами должны писать в лог инфу о соединениях. Хотя
>>можно сделать либо враппер вокруг того же tcpdump'а или ngrep'а или
>>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.
>
>Эка вас на снифферы понесло :)
>Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже
>отслеживать соединения.
>Самый простой вариант, это inetd.Конечно проще, вот только условия задачи могут не позволять использовать прокси (задача же не полностью описана).
>[оверквотинг удален]
>>>любой другой сетевой утилиты/сниффера или вообще написать на сырых сокетах сниффер
>>>с нужной функциональностью. Или просто найти сниффер способный отслеживать соединения.
>>
>>Эка вас на снифферы понесло :)
>>Имхо, тут проще всего сделать прокси-сервер для сервиса и через него уже
>>отслеживать соединения.
>>Самый простой вариант, это inetd.
>
>Конечно проще, вот только условия задачи могут не позволять использовать прокси (задача
>же не полностью описана).Спасибо за советы! Пока я остановился на програмке ss из iproute2. Делает почти то, что мне и нужно. Буду ковырять.
Еще раз спасибо.