Используйте netcat в качестве прокси для регистрации трафика
Я хочу использовать netcat в качестве прокси для регистрации http-запросов и ответов на файлы, а затем подключать их для проверки трафика. Думаю, проволочная акула.
Попробовал следующее, где 'fifo' - это именованный канал, 'in' и 'out' - это файлы, прокси netcat на порту 8080, сервер на порту 8081.
пока правда; сделать кошку фифо | nc -l -p 8080 | тройник в | nc localhost 8081 | тройник 1>fifo; сделанный
Проблемы:
Netcat перестает отвечать после первого запроса (пока цикл игнорируется?).
Netcat не удается с MSG
localhost [127.0.0.1] 8081 (tproxy) : Connection refused
если сервер недоступен на 8081. Вопрос: можно ли "лениво" подключиться к 8081, когда сделан запрос? Т.е. я не хочу, чтобы 8081 работал при запуске netcat.
3 ответа
ncat может сделать это довольно легко, используя аргумент --sh-exec.
Следующая команда позволит вам увидеть оба направления TCP-соединения в режиме реального времени и разрешит несколько соединений. Подключение к example.com
выполняется один раз для каждого соединения, полученного на localhost:8080
,
ncat -lkv localhost 8080 -c 'tee /dev/stderr | ncat -v example.com 80 | tee /dev/stderr'
Изменить два tee
команды для tee -a ./file
если вы хотите войти в файл вместо отображения его в реальном времени. Вы также можете удалить -v
отключить подробный вывод, оставив только переданные данные, напечатанные на терминале.
-k, --keep-open Accept multiple connections in listen mode
-l, --listen Bind and listen for incoming connections
-v, --verbose Set verbosity level (can be used several times)
-c, --sh-exec <command> Executes the given command via /bin/sh
Увидеть ncat --help
или же man ncat
Больше подробностей.