![本地主机如何共享到互联网?](https://linux22.com/image/1459061/%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA%E5%A6%82%E4%BD%95%E5%85%B1%E4%BA%AB%E5%88%B0%E4%BA%92%E8%81%94%E7%BD%91%EF%BC%9F.png)
最近我发现一些网站会为给定的本地主机生成一个公共 URL。我非常想知道如何将本地主机共享到互联网。
经过大量搜索,我得知它涉及所谓的“SSH 隧道”和“端口转发”。我对网络了解不多,但想更多地了解如何生成本地主机的公共 URL。
有人能解释一下这个过程是怎么进行的吗?或者能给我指出一些可以帮助我理解整个过程的链接。
答案1
首先,如果您的计算机连接到互联网,它就具有某种公共 IP 地址(或者至少是您的路由器而不是您的计算机)。
例如,该地址为 123.123.123.123。根据您的 ISP,每次您断开并重新连接到互联网时,该地址可能会发生变化。互联网上的其他计算机可以使用此 IP 123.123.123.123 访问您的网络或 PC。
现在,如果您想让本地网络服务器可用于互联网,您需要设置路由器(或 PC),以允许外部用户使用端口 80(HTTP 协议)或端口 443(https 协议)访问您的计算机。
一旦您定义了这样的规则,其他人将能够使用您的公共 IP 123.123.123.123 访问该网站。
当然,没人喜欢记住 123.123.123.123 这样的 IP 地址,因此才有 DNS(域名服务)系统。此服务允许您将 123.123.123.123 这样的地址与 mywebsite.de 这样的名称联系起来。因此,如果有人输入 www.mywebsite.de,DNS 系统会将其解析为 123.123.123.123,指向您的 PC。
我希望这是一个开始。
答案2
如果您创建了 SSH 隧道,则您会在本地网络上创建到远程计算机的安全隧道(类似于 VPN,但仅限于单台计算机/设备) - 因此如果您浏览到您的服务器 IP(LAN IP),它会像您在 LAN 内一样工作(即在家里或在您的公司)。
端口转发有所不同,因为它会告诉您的调制解调器/路由器打开(并将(“转发”))对您的公共 IP 的外部请求发送到您在 LAN 内选择的服务器设备。
我认为您主要指的是端口转发,因为理论上您可以将“localhost”开放到 Internet。从技术上讲,它不是“localhost”,而是您的 Web 服务器监听更多 IP(您的 LAN IP),而不仅仅是“localhost”……
您仍然需要端口转发才能使 SSH 正常工作。
答案3
为了正确回答,我们需要知道您所谈论的网站的地址以检查它们是如何工作的。
一种可能的方法是:
- 您在计算机上安装网站提供的程序
- 该程序连接到提供商服务器并建立隧道
- 一旦隧道建立,提供商就可以访问计算机资源。
- 提供商会为您的计算机创建一个 DNS 记录,如“customer17.providername.com”。该记录指向提供商服务器
- 当有人尝试连接到您的计算机时,他们使用名称 customer17.providername.com,他们被引导到提供商服务器,然后提供商服务器通过隧道将请求发送到您的计算机。
这是 Teamviewer 的工作方式(虽然不是使用 DNS 记录,而是使用内部 ID)