本教程将向您展示如何在Ubuntu上使用PageKit将localhost公开到Internet。
通常,如果你想从外部访问你的家庭网络服务器,你需要设置动态DNS,因为你的ISP不会给你一个静态的公共IP地址。但世界上的一些ISP甚至不为每个订户分配动态公共IP地址。许多订户共享一个公共IP地址。在这种情况下,动态DNS将无法工作,这就是PageKite的用武之地。
PageKite是一种开源隧道反向代理,能够绕过NAT(网络地址转换)、防火墙,并使本地web服务器和SSH服务器对公共互联网可见。如果你是一名网络开发者,或者在你的家庭网络上有一些像NextCloud这样的自托管服务,那么PageKite可以帮助你通过互联网远程访问它们。PageKite是用Python编写的,因此可以在多种设备上运行。
注意:使您的web服务器/SSH服务器在Internet上可见也会使它们暴露给黑客。
Pagekite的工作原理
您的服务(通常是一个或多个HTTP服务器)在本地主机上运行。在同一台机器上运行pagekite作为后端连接器。pagekite的另一个实例是作为前端中继在“云”中的一台具有公共IP地址的机器上运行。后端pagekite连接到前端,并为配置的服务创建通道。客户端(通常是web浏览器)连接到前端并请求服务。前端通过适当的隧道转发请求,后端将其转发到实际服务器。反应以同样的方式返回。
运行自己的前端中继需要一点钱,但PageKite开发者提供1天的免费帐户供您试用。让我们看看如何使用免费帐户的PageKite。本教程仅介绍如何公开本地web服务器。公开本地SSH服务器将在另一个教程中讨论。
使用Ubuntu上的PageKite将Localhost公开到Internet
首先,在本地Linux计算机上安装一个web服务器,如Apache。在基于Debian/Ubuntu的Linux发行版上,运行以下命令安装ApacheWeb服务器。
sudoaptinstallapache
启动web服务器
sudosystemctlstartapache
现在Apache正在监听端口80。我们使用PageKite使其在互联网上可见。使用以下命令在Linux计算机上安装PageKit。
Debian8/9、Ubuntu16.04/18.04、Raspbian及其衍生物
sudoaptinstallpagekite
接下来,运行以下命令。将名称替换为所需的子域。
pagekitename.pagekite.me
它会先问你是否想使用免费的PageKite。网络服务。因为你还没有自己的PageKite服务器,所以选择Y.
然后PageKit会提示您注册PageKite。net帐户使用您的电子邮件地址。
您的帐户详细信息(包括密码)将发送到您的电子邮件地址。打开电子邮件并单击其中的链接以激活您的帐户。然后输入Y继续并保存设置。
现在PageKite将连接到前端。
您应该能够使用域名访问本地web服务器。
name.pagekite.me
或