具有源地址的socat udp分组转发

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

我使用的是这样的: socat udp-listen:162,pktinfo,fork UDP:localhost:33162

麻烦的是,在监听端口33162的应用程序中,我看到127.0.0.1 ,这是不合理的。 我希望stream量保持其源地址。

这可能与socat?

Socat是一个代理,这意味着它代表别的东西连接到一个port / service / etc。 这意味着从你的服务angular度来看,这个连接源于socat。 一般来说,没有简单的方法来解决这个问题。

Linux确实具有“透明代理”的支持,但是这需要在代理应用程序中提供明确的支持,而且快速search并没有透露任何可以用于UDP通信的东西。

使用iptablesredirect通信将提供一个更干净的解决scheme。