Как виртуализировать IP-порт, который прослушивает приложение Linux? - PullRequest
4 голосов
/ 17 августа 2011

У меня есть приложение для Linux, для которого нет источника. Он прослушивает входящие TCP-соединения через определенный порт. Поскольку он был спроектирован неправильно, он может обрабатывать только одно соединение за раз.

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

Я рад написать клейкий код, но, похоже, уже существует какое-то решение для перехвата для создания сокетов, которое не должно быть изобретено заново. Есть ли?

1 Ответ

3 голосов
/ 17 августа 2011

Вы должны иметь возможность использовать библиотеку с LD_PRELOAD, чтобы переопределить использование приложением API сокета.Возможно, вы захотите начать с просмотра кода утилиты socksify, такой как tsocks или socksify из dante в качестве отправной точки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...