使用 ssh 转发 unix 数据报套接字?

Posted

技术标签:

【中文标题】使用 ssh 转发 unix 数据报套接字?【英文标题】:Forward unix datagram sockets with ssh? 【发布时间】:2018-02-27 19:17:24 【问题描述】:

是否可以使用 ssh 转发数据报套接字?似乎默认行为是转发或创建流套接字。我正在尝试使用 python 写入远程 unix 数据报套接字。尝试使用 ssh 转发套接字,这样我就可以使用 python 在本地编写......这有效,但似乎只适用于流套接字:(

【问题讨论】:

看看socat 一个在不同端点类型之间传输数据的强大工具,如果需要,您可以在 ssh 隧道旁边运行。 谢谢,我们将重新访问 socat,在初始故障排除期间,我们在远程计算机上使用 socat 从流传输到数据报。我们遇到了一堆问题,将 json 消息分成两部分。即使在调整了 byte max -b 选项之后..我们将再次尝试再次感谢... 您正在通过 UDP 传输 JSON 数据?除非您在协议中添加一些保证(基本上是 TCP 提供的保证,如数据包排序和重传),否则如果您的 JSON 有效负载不适合单个 UDP 数据包,您将始终面临损坏数据的风险。 【参考方案1】:

这里有一个例子:https://stackpointer.io/network/ssh-port-forwarding-tcp-udp/365/ 基于ssh + socat

    进行 ssh 端口重定向,例如:ssh -L 8000:127.0.0.1:8000 user@server01 运行socat将UDP传输到TCP端口8000:socat -T15 udp4-recvfrom:53000,reuseaddr,fork tcp:localhost:8000

然后这篇文章谈到了ssf (https://securesocketfunneling.github.io/ssf/),我从未听说过它,但声称可以同时进行 UDP 和 TCP 重定向,所以这对你来说可能是另一个想法。

【讨论】:

以上是关于使用 ssh 转发 unix 数据报套接字?的主要内容,如果未能解决你的问题,请参考以下文章

unix 套接字数据报:服务器接收到无效字符

一起talk C栗子吧(第一百五十七回:C语言实例--基于AF_UNIX域的数据报套接字通信)

我如何获得在 unix 域套接字中排队的数据报数量

UNIX域协议(命名套接字)

unix进程间通信方式(下)-unix域套接字(转)

如何使用 SOCK_DGRAM 制作双向 unix 域套接字?