У меня есть приложение 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, но все они глючные и слабые