使用 xinetd 的 UDP 端口转发

UDP port forwarding using xinetd

我曾在 google 和此处寻找关于我的问题的答案,但没有找到合适的答案。

上下文是这样的: 我在一个子网中的某个服务器(没有防火墙)上有一个软件 运行。 在不同子网的某台 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 配置遗漏了什么?

提前致谢,感谢您的每一个提示。

本尼

redirect                = 192.168.1.1 6000  #Server inside the 192.168.1.0 subnet

来自 man page of xinetd:

redirect

Allows a tcp service to be redirected to another host.

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