socat udp数据包转发带源地址

socat udp数据包转发带源地址

我正在尝试使用 socat(而不是 iptables)进行 UDP 端口转发。我只需要将一些流量从 UDP 端口 162 重定向到 33162。

我正在使用这样的东西: socat udp-listen:162,pktinfo,fork UDP:localhost:33162

问题是,在监听端口 33162 作为源地址的应用程序中,我看到了127.0.0.1,这是不可取的。我希望流量保留其源地址。

使用 socat 可以实现这个吗?

答案1

Socat 是一个代理,这意味着它代表其他东西与端口/服务/等建立连接。这意味着从您的服务的角度来看,连接源自 socat。一般来说,没有简单的方法可以解决此行为。

Linux 确实有“透明代理”支持,但这需要您的代理应用程序中的明确支持,并且快速搜索并没有发现任何可以与 UDP 流量一起使用的东西。

使用 iptables 重定向流量将提供一个更清洁的解决方案。

相关内容