首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xinetd进行端口转发

使用xinetd进行端口转发
EN

Stack Overflow用户
提问于 2014-02-12 09:14:07
回答 2查看 8.4K关注 0票数 1

我想将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下创建了一个服务

代码语言:javascript
复制
testsmpp    12345/tcp

我的守护进程的xinetd配置是

代码语言:javascript
复制
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的讨论,但我的动机略有不同。我希望侦听另一个端口上的传入连接,因为在分布式计算环境中,其他应用程序也将与该端口上的守护进程通信。

任何线索都非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-14 09:49:50

这是一个示例配置,obtained from this source,它适用于我:

代码语言:javascript
复制
service smtp_forward
{
    disable         = no
    type            = UNLISTED
    socket_type     = stream
    protocol        = tcp
    user            = nobody
    wait            = no
    redirect        = remote_server 25
    port            = 2000
}
票数 3
EN

Stack Overflow用户

发布于 2014-03-31 06:31:50

我认为您需要在重定向中同时使用ip和端口。就像这样

代码语言:javascript
复制
redirect = 127.0.0.1 54321

如果你在同一台主机上。至少对我来说是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21716673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档