linux - 如何虚拟化 Linux 应用程序正在监听的 IP 端口?

标签 linux sockets

我有一个没有源代码的 Linux 应用程序。它监听特定端口上的传入 TCP 连接。由于设计错误,它一次只能处理一个连接。

我想运行这个应用程序的多个实例,并通过虚拟化它们的套接字创建调用,让每个实例都认为它们拥有该端口——即提供一个重定向层,它将传入的连接分发到这些应用程序的池中,否则它不会运行,因为它们正在争夺那个端口。

我很乐意编写胶水代码,但似乎已经存在一些不应重新发明的套接字创建拦截解决方案。有吗?

最佳答案

您应该能够使用带有 LD_PRELOAD 的库来覆盖应用程序对套接字 API 的使用。您可能想先查看 socksify 实用程序的代码,例如 tsocks或来自 dante 的 socksify作为起点。

事实上,您甚至可以设置一个 socks 服务器并使用其中一个现有实用程序来解决该问题。

关于linux - 如何虚拟化 Linux 应用程序正在监听的 IP 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094242/

相关文章:

c++ - 避免拒绝服务攻击

linux - 是否有必要在关闭之前从 epoll 中注销套接字?

linux 查找多种模式

linux - Debian 在启动时发送 ip 地址 (sheevaplug)

c++ - 使用 libudev 时没有内存

sockets - 寻找 "hung socket simulator"以测试套接字超时

c# - 套接字缓冲它接收到的数据

linux - 在我的网络服务器上的子文件夹中查找和删除文件名列表

linux - 协助 WingIDE Linux 下载

java - 这个循环可以占用 100% 的 CPU 吗?