【发布时间】:2022-01-18 05:18:03
【问题描述】:
是否可以使用 socat 创建双向 UDP 隧道?起点是客户端(C)与服务器(S)通信并接收回复,所以C⟷S。当然,C 和 S 在不同的网络上,它们之间有一个中继(R),因此需要 C⟷R⟷S。中继运行的是 Ubuntu Linux。
以this 为例,使用 socat:
sudo nohup socat UDP-LISTEN:1194,fork,reuseaddr UDP:IP-ADDRESS-OF-HOME-ROUTER:1194 &
显然会导致中继(R)收到的所有数据包都被转发到IP-ADDRESS-OF-HOME-ROUTER,包括来自服务器的回复数据包,或C⟶R⟷S。
所以我的问题是,是否可以让 socat 等待来自服务器的回复数据包,然后将它们转发回客户端?是否有其他方法可以实现这一目标?
【问题讨论】:
-
我没试过,不过你可以试试
UDP-RECVFROM和UDP-SENDTO。我还建议阅读/略读the manual -
我认为你是正确的,根据你链接到它的文档应该可以工作。
标签: linux networking portforwarding tunnel socat