Вам действительно нужен удаленный порт? Если вы можете использовать ssh на удаленной машине, почему бы не запустить команду и не отправить данные обратно через команду ssh, как это делают rsync, Mercurial, Git и т. Д. SSH может обеспечить 8-битное чистое соединение, так что это похоже на соединение через сокет.
Чтобы было ясно, я предлагаю:
- SSH от пункта отправления до пункта назначения
- В сеансе SSH выполните команду в месте назначения, которая записывает данные в его стандартный вывод
- Стандартный вывод отправляется через соединение SSH от пункта назначения к источнику
- Сбор данных, которые поступают из стандартного вывода SSH на исходном компьютере
Тогда нет необходимости открывать конкретный порт ни в источнике, ни в пункте назначения.
Действительно, если вам действительно нужен «протокол, который будет копировать файлы из удаленной системы по требованию», как насчет SCP, SFTP или rsync через SSH?