Можно ли «труба» экземпляр консольного приложения через Netcat, так Netcat прослушивает для нового соединения и перенаправляет stdin
и stdout
через сетевое соединение.
linux
networking
console
netcat
jammmie999
источник
источник
<
или>
) значительно отличается от piping (|
), хотя иногда вы можете выполнить эквивалентную операцию с сочетанием обоих. Опять же, с помощью перенаправления ввода / вывода вы можете изменить расположение обоих потоков; трубопровод просто перенаправляет стандартный вывод одного процесса на стандартный ввод другого.Ответы:
Ну, как документировано в Википедии и
netcat
документации, есть-e
опция, которая заставляет ее порождать ( e xecute) программу при получении соединения, присоединяя сокет к stdin, stdout и stderr процесса. Пример использования:Примеры обычно показывают
/bin/sh
илиbash
используются как имя_программы . Использование этой опции не рекомендуется, так как она в основном открывает портал анонимного доступа без пароля на вашем компьютере. Конечно, это можно смягчить, если использовать программу с меньшей мощностью, чем у оболочки (которая не может сбежать в оболочку), свести к минимуму ее использование и сохранить ее в секрете. Тем не менее, первоначальные разработчикиnetcat
чувствовали себя достаточно твердо, что эта опция была плохой идеей, что они отключили ее по умолчанию и включили ее в опцию компиляции «GAPING_SECURITY_HOLE». Это кратко упоминается в этом учебном руководстве по NetCat и другойnetcat
документации.Поиск в Google привел меня к обсуждению этой проблемы на других сайтах Stack Exchange: переполнение стека и ошибка сервера . Несколько участников предложили следующую технику, чтобы сделать то же самое без использования
-e
опции (то есть, в версии, уnetcat
которой-e
опция отключена):Пара заметок:
netcat
,-l
подразумевает-p
, так что вы должны сказать только-l
и затем номер порта.while true
цикл.источник