1

我在谷歌和这里寻找我的问题的答案,但没有找到正确的答案。

所以这里是上下文:我有一个软件在一个子网中的某个服务器(没有防火墙)上运行。在不同子网中的某些 PC 上运行另一个软件。两个子网都连接到网关服务器。所有计算机都运行 CentOS 或 RHEL。在网关服务器上,有一个防火墙,防止多播流量离开一个子网,并允许来自外部的客户端连接到该子网内的计算机。因此使用 xinetd。来自外部的计算机需要将数据包发送到特定端口,内部计算机根据发送者响应另一个特定端口。所以网关不需要跟踪发送者-接收者的关系。它只需要将特定端口上的 UDP 转发到从一个子网到另一个子网的特定计算机。

所以我在 /etc/services 中添加了一项服务(针对一个方向):

udp-gateway    6000/udp

并在 /etc/xinetd.d/gateway 中创建了相应的配置文件,如:

service udp-gateway
{
  disable                 = no
  socket_type             = dgram
  protocol                = udp
  wait                    = no
  user                    = root
  redirect                = 192.168.1.1 6000  #Server inside the 192.168.1.0 subnet
}

现在的问题是,服务器没有打开一个 UDP 端口来监听('netstat -nulp' 说)。当我将协议更改为 TCP 并将 socket_type 更改为流时,它可以工作。但我需要这个用于 UDP。

这对UDP来说是不可能的吗?还是 netstat 只是不显示端口?还是我的 xinetd 配置缺少什么?

在此先感谢,每一个提示都表示赞赏。

本尼

4

1 回答 1

1
redirect                = 192.168.1.1 6000  #Server inside the 192.168.1.0 subnet

xinetd 的手册页

重定向

允许将tcp服务重定向到另一个主机。

这意味着无法对 udp 使用重定向。而且我看不到任何其他方法可以用 xinetd 做到这一点。

于 2015-09-16T16:28:53.193 回答