new*_*bie 7 ssh tunneling port-forwarding socks
正如标题所说,我不太明白它们之间的区别。例如,如果我在没有隧道的情况下通过 SSH 连接到特定服务器,我将获得与隧道相同的 shell。
如果您向 SSH 会话添加隧道,则会通过相同的加密连接为隧道创建额外的数据流。您还可以创建多个隧道或不启动交互式会话(使用-N
参数)。所以,基本上,没有真正的区别,只是使用加密连接的方法不同。
SSH 实际上是一种通用的安全通信机制,它可以通过不安全的底层通道传输任意数据。默认情况下,此数据是 shell 会话(即您的本地终端连接到在远程系统上运行的 shell),但可以传输不同类型的数据。
一种这样的类型是流套接字连接(例如 TCP 连接),它被称为隧道。SSH 客户端侦听 TCP 端口并通过安全通道传输与该端口建立的任何连接,并从远程系统退出连接。
默认情况下,当您设置隧道时,您仍然会获得一个外壳,即 SSH 客户端通过同一连接(隧道和外壳)传输两种类型的数据。您可以使用-N
参数禁用外壳。