gpt4 book ai didi

node.js - 如何构建 localtunnel/ngrok 克隆

转载 作者:行者123 更新时间:2023-12-04 13:57:53 27 4
gpt4 key购买 nike

服务如 ngroklocaltunnel存在这样你就可以(我不太热衷于描述这一点)将你的本地主机放在公共(public)网络上以访问公共(public) URL。 Localtunnel显得更受欢迎。

我的问题是,在一般级别/高级概述之类的事情上,您如何自己实现?比如,如何创建域 mydomain.com ,然后让它成为像 mydomain create-tunnel 这样的 cli 命令将返回一个唯一的 URL 12345.mydomain.com或者其他什么,然后我可以从那个唯一的 URL 访问我的本地主机。

我知道如何构建 CLI 和 RESTful Web 应用程序,但我不知道 localhost 和公共(public) URL 之间的连接在哪里。我不知道如何在公共(public) URL(仅限 https URL)上托管我的本地主机。

如果我尝试仔细考虑,我可能会尝试搜索 HTTP tunnels ,这导致 Tunneling protocol . HTTP 隧道页面没有透露太多信息。我认为隧道协议(protocol)页面的级别太低,我想我问的是更高的级别。

但是如果我试着想象会发生什么......浏览器向 mydomain.com 上的 URL 发出请求.然后,这与我本地机器上的 HTTPS 服务器已经打开了 HTTPS 连接。它将请求代理到本地机器的 HTTPS 服务器。然后向本地主机发出请求。也就是说,它将来自本地 HTTPS 服务器的请求代理到我实际关注的任何本地主机服务器。它向本地主机服务器发出请求,然后获得响应。将响应通过管道返回到远程机器,然后该远程机器将其通过管道返回到浏览器。

另外,在安全性方面我有什么需要担心的吗(无论是在构建安全隧道应用程序方面,还是在您如何使用类似的东西绕过防火墙方面)?

也许我应该看看 here :)。

最佳答案

我发现这个问题没有答案,我也遇到了同样的问题。
这是基于两个概念:

  • 反向端口转发:通过 ssh 连接从本地计算机连接到公共(public)主机(您必须获得授权)并要求将特定端口上的所有传入请求转发到本地计算机,从那里开始 ssh 连接请求。
    例如,在您的本地计算机上,您在端口 8080 上有一个 Web 服务器,并且您希望从您知道用户名和密码的公共(public)域服务器访问它:
    ssh -N -R 80:localhost:8080 serveruser@my.public.host.com

  • 现在您可以通过在端口 80 上调用公共(public)服务器来访问本地 Web 服务器。
  • 子域:如果您在公共(public)服务器上有 nginx 或 apache 或其他一些反向代理,您可以在航类创建一个子域,将地址传达给本地服务器,要求 ssh 反向连接,然后知道特定的主机地址(理解子域),它可以启动 ssh 反向连接。

  • 这就是我认为它的工作原理。

    关于node.js - 如何构建 localtunnel/ngrok 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58197096/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com