我想将xinetd连接转发到另一个本地端口(比如12345)。我的解决方案基于CentOS/Redhat文档,第17章,TCP Wrappers and xinetd, article 17.4.3.3。在本例中,配置启动了一个守护进程,并将流量重定向到host:port。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)建立的连接不会被转发。
server和redirect标签是否互斥?我看了关于xinet forking concurrent server的讨论,但我的动机略有不同。我希望侦听另一个端口上的传入连接,因为在分布式计算环境中,其他应用程序也将与该端口上的守护进程通信。
任何线索都非常感谢。
发布于 2014-05-14 09:49:50
这是一个示例配置,obtained from this source,它适用于我:
service smtp_forward
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = remote_server 25
port = 2000
}发布于 2014-03-31 06:31:50
我认为您需要在重定向中同时使用ip和端口。就像这样
redirect = 127.0.0.1 54321如果你在同一台主机上。至少对我来说是有效的。
https://stackoverflow.com/questions/21716673
复制相似问题