我有一个没有源代码的 Linux 应用程序。它监听特定端口上的传入 TCP 连接。由于设计错误,它一次只能处理一个连接。
我想运行这个应用程序的多个实例,并通过虚拟化它们的套接字创建调用,让每个实例都认为它们拥有该端口——即提供一个重定向层,它将传入的连接分发到这些应用程序的池中,否则它不会运行,因为它们正在争夺那个端口。
我很乐意编写胶水代码,但似乎已经存在一些不应重新发明的套接字创建拦截解决方案。有吗?
最佳答案
您应该能够使用带有 LD_PRELOAD
的库来覆盖应用程序对套接字 API 的使用。您可能想先查看 socksify 实用程序的代码,例如 tsocks或来自 dante 的 socksify作为起点。
事实上,您甚至可以设置一个 socks 服务器并使用其中一个现有实用程序来解决该问题。
关于linux - 如何虚拟化 Linux 应用程序正在监听的 IP 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094242/