如何通过 TCP 直接公开 UNIX 域套接字

如何通过 TCP 直接公开 UNIX 域套接字

我想要一个 UNIX 域套接字,例如 /var/program/program.cmd,通过 TCP 公开,比如说在端口 12345 上。我还希望它在后台全时运行。

最好的方法是什么?如果相关,系统正在运行 Ubuntu 12.04.2。

另外,提出的解决方案是否可以在域套接字被删除并重新创建后继续存在?

编辑

以下是以初始化脚本形式呈现的已接受答案的结果: https://github.com/Wirehive/haproxy-remote

答案1

您可以使用socat将 unix 套接字导出为 TCP 套接字。执行此操作的命令如下:

socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd

这将创建监听端口 12345 的 TCP 套接字,该套接字将连接到程序中提到的 unix 套接字。

对于删除问题,我没有亲自测试过。你可以验证一下并告诉我们:)

笔记: 您可能没有找到已安装的socat,您只需输入:apt-get install socat即可安装它。

相关内容