我想将 xinetd 连接转发到另一个本地端口(比如 12345)。我的解决方案基于 CentOS/Redhat 文档 Chapter 17. TCP Wrappers and xinetd, article 17.4.3.3。在示例中,配置启动了一个守护进程并将流量重定向到主机:端口。该文档说它也应该能够转发到同一系统上的不同端口。
我目前的目标是在端口 12345 上的任何连接上启动一个守护进程(比如 testmpp),并将流重定向到特定端口(比如 54321)。棘手的一点是我不希望守护程序(testsmpp)从 STDIN 读取,而是应该能够从 xinetd 将流量转发到的端口读取。
我在 /etc/service 下创建了一个服务,例如
testsmpp 12345/tcp
我对守护进程的 xinetd 配置是
service testsmpp
{
sock_type = stream
protocol = tcp
wait = no
user = root
server = /home/me/bin/testsmpp
redirect = 54321
}
testsmpp 侦听端口 54321。问题是当从外部建立连接时,xinetd 启动守护程序但不将流量转发到 54321。一旦服务器启动,我可以直接连接到 54321 端口,但通过 xinetd 建立的连接(在端口 12345 ) 不转发。
服务器和重定向标签是互斥的吗?我查看了有关xinet 分叉并发服务器的讨论,但我的动机略有不同。我想监听另一个端口上的传入连接,因为在分布式计算环境中,另一个应用程序也将与该端口上的守护进程通信。
任何线索都非常感谢。