tunnlr等服务如何运作?

Geo*_*Geo 2 ruby language-agnostic ssh tunnel

该网站说:

Tunnlr使用SSH远程隧道.它将本地计算机上的端口安全地连接到公共服务器上的开放端口.启动Tunnlr客户端后,本地计算机上的Web服务器将通过您的特殊Tunnlr URL提供给世界其他地方.

有人可以详细介绍整个过程的工作原理吗?或者可能指向允许相同的东西的开源?

Cas*_*per 6

所述SSH协议允许在任一方向连接的隧道.所以根据上面的描述,这里发生了什么:

  1. 您将客户端程序(SSH客户端)下载到您的计算机并运行它.
  2. 客户端建立从计算机到tunnlr远程服务器的SSH连接
  3. 在tunnlr服务器上,为传入连接打开访问端口.让我们说端口1234.
  4. 现在当任何人连接到tunnlr:1234tunnlr服务器时,将通过步骤2中建立的连接指示您的客户端程序打开计算机内部的连接 - 让我们说到端口80(例如,您在那里运行Web服务器).
  5. 隧道连接现在将在tunnlr:1234和之间混洗数据your_computer:80.

所以这就是有效的:

[some_remote_computer]<->[tunnlr:1234]<->[SSH tunnel]<->[your_computer:80]
Run Code Online (Sandbox Code Playgroud)

假设some_remote_computer您的朋友或您希望能够连接到本地Web服务器的任何其他人.

SSH可用于许多平台(Linux,Windows,OSX等).您可以使用它轻松构建此类隧道,但您当然需要访问要在其间构建隧道的两台计算机.假设一台计算机是您自己的计算机,另一台计算机是您租用的VPS(或任何其他具有SSH访问权限的远程服务器).现在您可以运行完全相同的设置.

tunnlr的优势在于它们可以为您管理远程服务器,并且它们具有可用于隧道的注册主机名.