LINUX.ORG.RU
ФорумAdmin

Нужно тупо перехватить все, что придет на порт


1

1

Для временного отключения редиса надо перехватить все, что приходит на порт и записать в фаил.

При этом необходимо, чтоб для одного соединения создавался один фаил, а то конекшенов много, они могут смешаться

★★★★
Ответ на: комментарий от zgen

tcpdump же выводит в каком-то своем формате с деталями протокола

а мне надо просто все, что летит.

Причем не одним файлом

nc есть - но он тоже только один поток держит

namezys ★★★★
() автор топика
Ответ на: комментарий от fr_butch

мне нужен текстовой фаил

[code] сначала: nc -l localost 6979 > file потом: cat file > redis-cli [/code]

Но проблема в том, если 2 соединени открыты, то может получится, что один поток прервется и выведется второй.

namezys ★★★★
() автор топика

$ apt-cache show tcpflow

Description: TCP flow recorder
 tcpflow is a program that captures data transmitted as part of TCP
 connections (flows), and stores the data in a way that is convenient
 for protocol analysis or debugging. A program like 'tcpdump' shows a
 summary of packets seen on the wire, but usually doesn't store the
 data that's actually being transmitted. In contrast, tcpflow
 reconstructs the actual data streams and stores each flow in a
 separate file for later analysis.
 .
 tcpflow understands sequence numbers and will correctly reconstruct
 data streams regardless of retransmissions or out-of-order delivery.
 However, it currently does not understand IP fragments; flows
 containing IP fragments will not be recorded properly.
 .
 tcpflow is based on the LBL Packet Capture Library and therefore
 supports the same rich filtering expressions that programs like
 'tcpdump' support. tcpflow can also rebuild flows from data captured
 with 'tcpdump -w'.
Homepage: http://www.circlemud.org/~jelson/software/tcpflow/

sdio ★★★★★
()
Ответ на: комментарий от namezys

а его как?

настроил сервис на определенный порт, повесил на него скрипт, который запишет весь входящий поток в файл; на каждый новый коннект запустится новый экземпляр скрипта; осталось только придумать, как генерить название выходного файла для каждого инстанса

service test-srv
{
        type            = UNLISTED
        flags           = REUSE KEEPALIVE
        socket_type     = stream
        wait            = no
        instances       = 0
        user            = root
        server          = /path/to/test-srv
        port            = 12345
        disable         = no
}
anonymous
()

Сначала tcpdump -i <interface> -s 0 -w file, затем разгрести эту кучу с помощью chaosreader(там в коде есть ошибка(деление на 0), поправите когда столкнётесь)

srg666
()
Ответ на: комментарий от anonymous

осталось только придумать, как генерить название выходного файла для каждого инстанса

tcpflow stores all captured data in files that have names of the form

128.129.130.131.02345-010.011.012.013.45103

where the contents of the above file would be data transmitted from host 128.129.131.131 port 2345, to host 10.11.12.13 port 45103.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.