【问题标题】:SSH Port Forwarding Internal DetailsSSH 端口转发内部详细信息
【发布时间】:2016-01-05 04:18:01
【问题描述】:

这更像是一个理论问题,需要更多理解。

为了进行端口转发,我们更新sshd_config并提供我们需要在其中进行转发的本地端口(a)和远程端口(b)的信息。完成此转发配置后,将使用 ssh 隧道在 a <-> b 之间转发数据包。

但在内部,这是如何工作的?当我执行https://localhost:a 时,数据包如何从端口a 移动到ssh 隧道端口22 并在另一侧从端口22 移动到端口b

【问题讨论】:

    标签: http ssh port portforwarding


    【解决方案1】:

    如果您对内部结构感兴趣,openssh 是最流行的 SSH 协议实现,它是开源的,代码可在 GitHub 上找到。

    为了回答您的问题,它与其他所有网络通信一样工作。如果您不熟悉它,请查看network socket 的工作原理。端口转发只是在两端之间进行代理,并在加密通道内发送数据,而不是像直接套接字那样在外部发送数据。

    不管怎样,google 一下比较容易。 Ubuntu 在他们的documentation 中有一个很好的解释:

    要充分利用端口转发,了解一下 Internet 的工作原理会很有帮助。

    互联网为计算机分配虚拟“端口”,有点像计算机背面的 USB 端口:

    要让数码相机与您的 PC 共享照片,请将相机上的 USB 端口连接到 PC 上的任何 USB 端口。然后,计算机会与相机讨论您的照片,并向您显示结果。

    要让 Web 服务器与您的 PC 共享页面,请将服务器上的 Web 服务器端口连接到 PC 上的任何 Internet 端口。然后计算机与服务器讨论您的页面,并显示结果。

    与 USB 端口不同,互联网端口没有物理组件。计算机背面没有实际的电线或实际的孔。这只是通过 Internet 发送的消息。与其他“虚拟”计算机概念一样,Internet 端口只是一个类比,有助于解释您的计算机在做什么。有时,这个类比会失效:

    有两种类型的 Internet 端口:普通的“TCP”端口和奇怪的“UDP”端口(这里不再介绍)。

    与 USB 端口不同,每台计算机都有 65,535 个编​​号的 TCP 端口,其中一些具有特殊用途。例如,端口号 80 是您的 Web 服务器端口,因此您的 Web 浏览器知道它应该连接到端口号 80 才能下载网页。

    Internet 端口之间的连接可以修补在一起,因此从计算机 A 到计算机 B 在端口 12,345 上的连接可以修补到计算机 C 上的端口号 80。这称为端口转发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多