哪个 RFC 指定了 ssh 动态隧道?

问题描述 投票:0回答:1

通过读取源代码,它由

dynamic-tcpip
类型的通道处理。
SSH RFCIANA for SSH 都不包含此字符串,但它们确实包含其他类型的端口转发通道。
互联网和 GitHub 也没有包含太多这个字符串。
哪里指定的?

ssh portforwarding rfc
1个回答
0
投票

我不认为“dynamic-tcpip”是“真正的”通道类型。它是 ssh 客户端内部使用的标签,用于动态端口转发侦听端口。

动态和非动态端口转发都会为每个转发的客户端连接打开一个到远程服务器的“direct-tcpip”通道。打开 direct-tcpip 通道的请求包括通道应转发到的主机和端口。

对于非动态转发,主机和端口是在创建转发时指定的。当您运行

ssh -L 1234:somehost:5678...
时,远程主机和端口是“somehost”端口 5678。对于通过运行类似
ssh -D 1234
之类的内容创建的动态转发,客户端将连接到动态侦听端口并使用 SOCKS 协议发送它想要连接的主机和端口。无论哪种方式,ssh 客户端都会使用主机和端口来创建以主机和端口为目标的 direct-tcpip 通道。对于远程服务器来说,通道打开请求来自动态转发而不是其他东西并不重要。

您将看到客户端关于动态监听端口的消息中出现“dynamic-tcpip”:

$ ssh -vD 1234 localhost
...
debug1: Connection to port 1234 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
~#
The following connections are open:
  #2 client-session (t4 r0 i0/0 o0/0 e[write]/4 fd 11/12/13 sock -1 cc -1 io 0x01/0x01)
  #3 dynamic-tcpip (t13 nr0 i0/0 o0/0 e[closed]/0 fd 14/14/-1 sock 14 cc -1 io 0x01/0x00)

在这里,连接到动态侦听端口会触发一条提及动态 tcpip 通道类型的调试消息,并且它还会通过键入“~#”显示在通道列表中。

© www.soinside.com 2019 - 2024. All rights reserved.