【问题标题】:Port forwarding with xinetd使用 xinetd 进行端口转发
【发布时间】: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 的讨论,但我的动机略有不同。我想监听另一个端口上的传入连接,因为在分布式计算环境中,另一个应用程序也会与该端口上的守护进程通信。

非常感谢任何线索。

【问题讨论】:

标签: linux networking centos portforwarding xinetd


【解决方案1】:

这是一个示例配置,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
}

【讨论】:

    【解决方案2】:

    我认为您需要在重定向中同时使用 ip 和端口。类似的东西

    redirect = 127.0.0.1 54321
    

    如果您留在同一主机上。至少对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多