【发布时间】:2014-02-12 01:14:07
【问题描述】:
我想将 xinetd 连接转发到另一个本地端口(比如 12345)。我的解决方案基于 CentOS/Redhat 文档第 17 章。TCP Wrappers and xinetd, article 17.4.3.3。在示例中,配置启动了一个守护进程并将流量重定向到主机:端口。 doco 说它应该也可以转发到同一系统上的不同端口。
我当前的目标是在端口 12345 上的任何连接上启动一个守护程序(例如 testsmpp),并将流重定向到特定端口(例如 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 forking concurrent server 的讨论,但我的动机略有不同。我想监听另一个端口上的传入连接,因为在分布式计算环境中,另一个应用程序也会与该端口上的守护进程通信。
非常感谢任何线索。
【问题讨论】:
-
如果您能得到答案,那就太好了。 stackoverflow.com/questions/28691913/…
标签: linux networking centos portforwarding xinetd