假设一个遗留Linux应用程序正在UNIX域套接字/tmp/foo上侦听.

除了通过UNIX域套接字机制与这个遗留应用程序通信之外,我希望能够通过端口(比如1234)上的TCP连接连接到它.

绑定到TCP端口1234,然后将所有传入连接重定向到UNIX域套接字/tmp/foo的最简单方法是什么?

推荐答案

事实证明,socat可以用来实现这一点:

socat TCP-LISTEN:1234,reuseaddr,fork UNIX-CLIENT:/tmp/foo

还有一点额外的安全性:

socat TCP-LISTEN:1234,bind=127.0.0.1,reuseaddr,fork,su=nobody,range=127.0.0.0/8 UNIX-CLIENT:/tmp/foo

这些示例已经过测试,并按预期工作.

Linux相关问答推荐

如何将netcdf文件列表中的特定变量添加到不同的文件中?

在64位Linux Mint 21.2 Mate上呈现nvim中的文本对象时出现问题

C++调试器如何知道如何在源代码和可执行文件之间映射行?

Bash shell 脚本未通过 TRUE 条件

如何拆分和计算 Bash 中单词的出现次数?

在 Ansible 中使用 JSON 查询过滤数据以从 ansible_fact 中提取数据

使用 awk 将索引列添加到 csv

如何获取 CPU 使用率

Linux批量转换:使用转换更改jpg的质量但保留其名称

PuTTY:更改默认 SSH 登录目录

如何让 PHP、Symlinks 和 __FILE__ 很好地协同工作?

用于 Linux 的 Less 编译器

如何在 Linux 中查找所有以 .rb 结尾的文件?

docker images显示图像,docker rmi表示没有这样的图像或参考不存在

比较linux中两个未排序的列表,列出第二个文件中的唯一性

如何对 /dev/random 或 /dev/urandom 进行 base64 编码?

在linux上上几个目录

Bash:在文件中的特定位置插入一行

conda 命令会提示错误:Bad Interpreter: No such file or directory

Linux 上的最大文件/目录数?