Назад | Перейти на главную страницу

Socat взаимодействует с определенным хостом (обратная оболочка) от нескольких клиентов / соединений

У меня есть приложение c / c ++ с потоком, которое дает обратную оболочку pty, установленную на нескольких клиентах Linux, все они подключаются к одному серверу / порту
теперь мне нужно найти надежный способ взаимодействия с конкретным хостом, чтобы я мог, например, позже написать сценарий / псевдоним bash.

используя socat, я думаю, это должно быть похоже на то, чтобы продолжать слушать и ждать, пока конкретный хост выберет и разветвится, и взаимодействует с его оболочкой и закроет / выйдет, если это не тот конкретный хост, я думал, что что-то подобное сработает

socat TCP-LISTEN:8080,fork SYSTEM:'[ $(hostname) != "host.d.com" ] && { exit;}',pty,stderr

но это не дает мне никакого вывода, я пробовал с помощью простой команды, например

socat TCP-LISTEN:8080,fork SYSTEM:'/usr/bin/id',pty,stderr

и я получаю эту ошибку каждый раз, когда клиент подключается

socat[1567] E write(5, 0x7faa9c802c00, 341): Input/output error

имейте в виду, что я получаю обычную оболочку, ожидающую ввода с этой командой, которая отлично работает для первого клиента, который подключается в

socat - TCP-LISTEN:8080

Я также пробовал с параметром nmap ncat --allow ncat -lvvp 8080 --keep-open --max-conns 1 --allow some ip/host но, к сожалению, я не могу его использовать, потому что хосты привязаны к одному IP

Итак, есть ли какое-либо решение этой проблемы, которое позволило бы мне управлять / выбирать / взаимодействовать с несколькими обратными клиентскими оболочками без необходимости использовать другой порт для каждого клиента, также я сохраняю его для тестирования, но мне нужно, чтобы он работал через SSL, это почему я пытаюсь использовать socat и ncat

Я видел несколько проектов python на github, но все они глючные и слабые