我正在尝试使用 UDP 协议和 ssh 隧道。 我有这 2 台机器,配置如下:
1) 工作站 a,装有 Windows 7,带有 Putty 和 socat,带有 cygwin。
2) RaspberryPi 与 raspbian。
只是为了测试(我需要UDP用于其他程序,但如果这不起作用,则测试其他东西就没用了),我正在尝试从工作站使用RaspberryPi后面的路由器的DNS服务器。
在谷歌搜索并看到很多例子后,我已经这样做了:
1)我使用PuTTy将Workstation连接到RaspberryPi,并在Workstation本地TCP端口50053上打开并将其转发到RasberryPI本地TCP 50053。(L50053到127.0.0.1:50053)
2)在我的工作站上的 cygwin shell 上运行: socat udp-recvfrom:53,reuseaddr,bind = 127.0.0.1,fork tcp:127.0.0.1:50053
3)在我的 RaspberryPI 上运行: socat tcp4-listen:50053,reuseaddr,fork,bind=127.0.0.1 UDP:192.168.1.1:53(甚至使用 8.8.8.8:53 进行测试)
我在每份指南中都看到这一定有效,但是,对我来说却行不通。
有什么建议吗?
有什么方法可以查看socat是否正常工作?
您应该尝试
udp-listen
而不是udp-recvfrom
。 udp-recvfrom 将为每个 UDP 数据包创建新的 TCP 连接。我在通过 SSH PuTTy 连接进行 UDP 隧道时遇到了类似的问题,对我来说 UDP-LISTEN 解决了这个问题。