SSH 使用 UDP 做什么?

ale*_*lex 52 ssh tcp udp

在做研究时,我注意到 SSH 都使用 TCP 和 UDP。我完全理解TCP的使用,但UDP似乎有点奇怪。为什么我要使用“不可靠”的传输协议,并且最少的握手来实现安全外壳访问?

我能想到的唯一用途是用于SCP,因此(大)文件传输。但是,TCP 不是因为握手的东西而更有用吗?

事实上,我正在考虑只为 SSH 打开 TCP,但不知道这样做的影响会非常有害。


编辑

事实证明,不仅有关于 UDP 上的 ssh 的论文,还有一个完全成熟的 ssh 实现,称为mosh。然而,经典的 ssh 仍然只使用 TCP,正如其RFCs 中所指定的那样。

mta*_*tak 49

我尝试了从 Windows 到 Unix 以及从 Unix 到 Unix 的多个 SSH 连接,但在端口 22 上没有收到单个 UDP 数据包。此外,服务器仅侦听 TCP。

在这篇论文中,他们尝试为 SSH 传输实现 UDP,但他们也提到默认仅使用 TCP:“。OpenSSH 对其所有网络连接都始终使用 TCP,因此对于其 VPN 功能。”。维基百科页面可能会说它是 UDP,因为 SSH 开发人员提出了 UDP 和 TCP 分配的初始请求,但相关的 RFC没有提及它。


小智 5

... SSH 协议使用或已经使用 22/UDP 通过 TCP 进行隧道控制。如果通过 Wireshark 正确解码,并且您通过 ssh-agent 或隧道远程或本地隧道建立连接,您会注意到 UDP 封装在 TCP 段中。