我如何找出我正在通过隧道传输的 http 代理服务器的类型?

我如何找出我正在通过隧道传输的 http 代理服务器的类型?

按照标准的在线说明,我在家里使用 putty 设置了 ssh 隧道,以访问只能在我的工作网络上访问的私人网页。幸运的是,这很管用;当我使用 putty 中设置的隧道选项通过 ssh 连接到我们私人网络上的一台机器,并将我的浏览器设置为使用 localhost 上的相应端口时,我就可以访问我们私人网络上的网页。

我很好奇这在服务器端通常是如何工作的。除了 ssh 服务器之外,是否有人已经设置了代理服务器?以下问题似乎表明这是不必要的,并且 ssh 服务器已经支持 http 代理请求: 我是否需要有代理服务器才能通过 SSH 运行 HTTP?

我如何自行调查我的流量正在经过哪个 http 代理服务器?

答案1

SSHv2 协议包括请求服务器建立 TCP 连接并通过您的 SSH 连接在客户端(您)和给定的远程主机之间传递数据。它所关心的只是原始 TCP 流。

你的 SSH客户(即 PuTTY 或 OpenSSH)能够以多种方式使用此功能:除了静态配置的远程主机:端口(“本地转发”或“远程转发”),客户端还可以充当袜子 5服务器允许其他程序(例如 Firefox)指定连接位置。

对于浏览器来说,你的 SSH 程序看起来就像一个普通的 SOCKS 代理服务器。(你连接的 SSH 服务器并不知道这一切——它只是根据“打开与 google.com:80 的 TCP 连接”请求。 也不涉及其他代理服务器。

  • Web 浏览器 ↔ (SOCKS 5) ↔ SSH 客户端 ↔ (SSH) ↔ SSH 服务器 ↔ (TCP) ↔ Web 服务器

请注意,使用的代理协议是 SOCKS,而不是 HTTP。换句话说,SSH 客户端不关心 HTTP 请求 - 它在较低级别工作,中继原始 TCP 连接。这也意味着任何使用 TCP 的协议可以通过这种方式进行隧道传输,包括邮件、HTTP/SSL 和 SSH 本身。

相关内容