【问题标题】:UDP reverse tunnel over ssh (using socat)通过 ssh 的 UDP 反向隧道(使用 socat)
【发布时间】:2012-01-26 19:39:28
【问题描述】:

我想设置一个反向 udp 隧道,因为我需要从远程连接到我的 openvpn 服务器,而 openvpn 服务器位于 NAT 后面。为此,我使用 socat 和 ssh。 tcp隧道命令:

socat exec:"ssh removeserver \"socat tcp-listen:10000,fork -\"" tcp-connect:localhost:22

确实可以正常工作,然后我可以建立到 remoteserver:10000 的 ssh 连接。

但是当我想对 udp 做同样的事情时:

socat exec:"ssh removeserver \"socat udp-listen:10000,fork -\"" udp-connect:localhost:1194

然后尝试建立openvpn连接,我得到以下错误:

2011/12/23 13:27:43 socat[28241] E read(3, 0x80c3b08, 8192): Connection refused

隧道起初似乎可以工作,因为两个日志文件(服务器和客户端)都有连接尝试的条目。但是无法建立连接。

【问题讨论】:

    标签: ssh udp tunnel tunneling socat


    【解决方案1】:

    我刚刚尝试过,我相信它失败的原因是隧道的 ssh 部分没有保留 UDP 数据报的大小。 IE。一个 14 字节的数据报和一个 22 字节的数据报在另一端组合成一个 26 字节的数据报。 Openvpn 在这种情况下不起作用。

    我已经通过与此类似的构造获得了概念验证成功,但是有一个程序可以读取 UDP 数据报并将它们转换为具有 16 位长度前缀的 tcp 流(即长度为字节的流,length,bytes 等),显然也相反。

    有了这个,我就可以打开 openvpn 了。

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2022-01-18
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2020-02-09
      • 2014-12-12
      相关资源
      最近更新 更多