我正在尝试使用 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 重定向流量将提供一个更清洁的解决方案。