从任何地方访问本地主机

帕特里克Catanzariti
分享

你花了几个小时在你的电脑上工作,让新的网站设计看起来刚刚好。你的CMS很好地设置了示例内容,你想在一些移动设备和平板电脑上测试它。你的客户也想看一看——但是你没有时间把它全部迁移到一个公共服务器上,让他们快速浏览一下。

如果你是一名网页开发人员,你很可能多次遇到这种情况。你可能花了很多时间把文件迁移到一个面向公众的服务器上,希望有更简单的方法。

对于那些疲惫的网页开发人员,我在这里告诉你,一种更简单的方法已经到来!事实上,有大量的应用程序和服务可以通过从Web访问本地主机来帮助简化这个过程。我将在本文中讨论的是:

如何从任何地方访问本地主机?

这是可能的安全的隧道网上服务!这些服务为您提供从Internet到您的计算机的隧道。

这意味着它们提供一个公共可访问的URL,监视对该URL的调用,并将这些调用转发到本地主机服务器。所有令人困惑的设置都为你完成了;您所需要做的就是安装一个应用程序并将其指向本地主机。

关于使用虚拟主机的说明

在我的本地主机上,我已经设置了虚拟主机。没有下面列出的每个服务的地址ServerAlias,我的服务器将拒绝正常运行。接下来是几个小时的混乱。如果你的处境相同,那就加一个ServerAlias到你的httpd . conf,将下面看到的ngrok地址替换为您正在使用的服务的地址:

<虚拟主机80>DocumentRoot“/用户/ patcat /网络”ServerName mytestsite测试ServerAlias350c0f8engrokcom</虚拟主机>

ngrok

ngrok是一款适用于Windows, macOS和Linux的应用程序,它创建了一个隧道,但也允许您检查通过隧道的所有流量,并重新播放该流量进行测试。

您可以免费使用基本功能,然后注册以访问更高级的功能。为了使用自定义子域名和保留域名,你需要注册一个付费计划。否则,您将能够使用该服务,但将被给予一个随机域,例如350 c0f8e.ngrok.comURL在上面的虚拟主机示例中。

Ngrok在2021年5月的计划如下:

ngrok计划从2021年5月开始

ngrok的一个关键优势是它没有依赖关系。安装ngrok并运行它。没有其他要求。

如何使用ngrok

去ngrok.com,下载存档,并将其提取到你想ngrok生活在你的计算机上的任何地方。以下是基本步骤,但如果你想了解更多细节,我们有另一篇关于“如何使用ngrok共享本地开发站点”。

打开一个命令行终端,进入你解压ngrok到的文件夹。运行以下命令在端口80上创建到本地主机的隧道:

/ ngrok http。80

你会看到一个这样的屏幕:

Ngrok在80端口上运行

在上面的例子中,我们有一个随机生成的ngrok地址http://42e474ef9799.ngrok.com的流量被转发到我们的本地主机127.0.0.1:80。

在任何有互联网连接的设备上打开该URL,您将从Web访问您的本地主机!

ngrok提供的更独特的功能之一是检查过去的流量。要做到这一点,请转到http://localhost:4040/在你的电脑上。您将访问显示入站请求的仪表板。您可以单击左侧的每个请求,并在右侧查看头部和其他数据的详细信息。我最喜欢的用法是查看从请求返回的JSON数据。当加载一个简单的HTML页面时,它的基本布局是这样的:

查看ngrok入站请求

控件,甚至可以重放请求重播按钮在右边。它会在隧道上为你重新运行请求。

Ngrok的高级功能

密码保护允许您阻止随机公众成员访问您的网站:

HTTP -auth“用户名:密码”80

自定义子域是用于当您不想记住随机生成的URL时!如果你注册了付费ngrok计划,你可以预留一个子域名,这样其他人就不能使用它了。下面允许您在nogophersinmytunnel.ngrok.com查看您的本地主机:

HTTP -subdomain nogophersinmytunnel80

自定义的域,当你不希望在隧道项目的URL中有“ngrok”时。付费计划允许您使用自己的域名,而不是需要使用ngrok.com:

Ngrok HTTP -hostname“tunnel.yourdomain.com”80

您甚至可以隧道到本地网络上的一个IP地址,否则外部世界无法访问:

ngrok http192.168.0.27:80

或者你可以为其他非http服务创建隧道:

ngrok tcp22

您还可以做很多其他的事情,从一次运行多个隧道到创建一个配置文件来保存所有这些设置以供将来使用。

阅读所有可能的东西,看ngrok的文档

PageKite

PageKite是一个基于python的“基于动态隧道的反向代理”,适用于Windows, macOS, Linux,甚至Android设备!它与ngrok非常相似,但已经存在了相当长的时间,而且它似乎在更广泛的应用中经受了更多的考验。他们甚至让它与Minecraft协议一起工作,允许人们在他们的本地机器上运行Minecraft服务器。

你可以注册一个月的免费试用和2.5GB的传输配额。在那之后,它有一个随需付费系统(每月最低4美元,如果你工作在免费的开源软件上,则是免费的)。在这种情况下,你确实需要支付更多的钱来获得更多,支付更多的钱可以获得更大的配额,更长的服务期限,自定义子域名,等等。

PageKite似乎没有像ngrok那样的流量检查器,但它确实有相当令人难以置信的功能,比如内置防火墙,可以阻止对常见攻击目标的访问/ wp-admin/ xamppphpMyAdmin页面等等。如果你不介意这些是公开的,它可以被禁用。

他们甚至在澳大利亚悉尼有一个前端中继服务器,所以这可能会为澳大利亚的开发人员提供更快的速度。

如何使用PageKite

PageKite.net并下载适合您操作系统的版本。对于Windows用户,您需要确保首先安装了Python。对于macOS和Linux,可以使用简单的cURL命令直接从命令行安装它。

下载完成后,运行此命令运行到本地主机服务器的隧道。你可以选择每次使用的特定子域(而不是ngrok中的随机分配)。我选择hurrygetintothefancytunnel在这里:

pagekite.py80hurrygetintothefancytunnel.pagekite.me

最近,我需要在我的Mac上运行python3一开始,如果上面的方法不管用,可以试试:

python3 pagekite.py80hurrygetintothefancytunnel.pagekite.me

如果你还没有注册,它会一直运行并为你注册服务。然后,您将启动并运行localhost !

PageKite在80端口上运行

PageKite的高级功能

PageKite还有一些更令人印象深刻的附加功能。

举个例子:不需要网络服务器。如果你没有运行服务器,它有一个内置的web服务器,可以运行你的静态文件,像这样:

pagkite .py /path/to/folder igotthattunnelvision.pagekite.me

像ngrok一样,你可以通过密码来限制访问:

pagekite.py80terelekkayatuneli.pagekite.me +密码/用户名密码

或者通过IP地址限制访问:

pagekite.py80ip /为1.2.3.4 arcadefirecamethroughmywindow.pagekite.me +好+ ip / 4.5.6好吧

如上所述,您甚至可以在手机上运行所有这些。我安装了一个名为kWS然后运行PageKite将其暴露在网络上:

PageKite和kWS在我的手机上运行

PageKite从我的手机交付一个网站

这绝对不是我每天都会做的事情,但看到这些东西现在只在智能手机上就可以实现,真是太棒了!

就像ngrok一样,PageKite可以一次执行多个隧道,它支持拥有自己的域,并支持为隧道设置配置文件。要了解更多,请查看他们的快速入门指南他们更全面指南页面

localtunnel

localtunnel是一个隧道服务,最初是在Node中构建的,但也有基于go和c# /。网络客户端。

如何使用localtunnel

你可以像大多数npm包一样在你的设备上全局安装它:

npm安装- g localtunnel

为了在端口80上启动到本地主机的隧道,运行以下命令:

lt -港口80

它会像ngrok和PageKite一样运行!它会给你一个子域,就像我给出的那样:https://loud-ladybug-21.loca.lt

Localtunnel在80端口上运行

当第一次运行localtunnel时,您将收到一个友好的提醒,该操作将使您的资产对Web公开。刚才打了点击继续

本地隧道友好警告

本地隧道的高级功能

获得一个免费的自定义子域名是完全可行的,只要子域名还没有采取。要使用自定义子域,只需使用——子域名参数:

lt -港口80——子域名platypusestunneltoo

localtunnel提供的一个非常方便的特性是一个Node API,它允许你通过JavaScript生成localtunnel,在你的自动化测试中使用:

常量localtunnel需要“localtunnel”异步= >常量隧道等待localtunnel港口3000//您的隧道URL将显示为tunnel. URL隧道“关闭”= >//一旦隧道关闭,就采取行动

boringproxy

boringproxy是一个更新的选择,完全免费和开源的MIT许可证!它的主要关注点似乎是让人们更容易在自己的电脑上托管网站。它作为一个单独的可执行文件,作为一个服务器和客户端工作。有一个可执行的一系列Linux系统和Windows。macOS被列为“未经测试”。我个人还没能让它在我的Mac上工作,但如果你有Linux盒子或树莓派,这可能是你的解决方案。它都是用Go编写的,并且对贡献者开放。

其特点简述:

  • 在MIT许可下100%免费和开源
  • 可以完全自托管吗
  • 内置反向代理
  • 支持自定义域/子域

如何使用boringproxy

主要步骤是最容易遵循的boringproxy文档,因为不同平台的情况也不同。

总的来说,它包括:

  • 下载服务器实例旋度(例如,curl -LO https://github.com/boringproxy/boringproxy/releases/download/v0.6.0/boringproxy-linux-x86_64
  • 修改文件权限执行已下载的可执行文件(例如,Chmod +x boringproxy-linux-x86_64
  • 设置到端口80和443的绑定(例如,Sudo setcap cap_net_bind_service=+ep boringproxy-linux-x86_64
  • 在客户端设置可执行文件

这段视频来自boringproxy的创建者,涵盖了如何做到最好:

boringproxy的高级功能

自动HTTPS证书通过“让我们加密”自动为您管理。无需为获得测试证书而感到压力,因为它发生在幕后。

Web配置界面自动设置以允许您管理用户、访问令牌和隧道。

你可以隧道web应用程序轻松.自托管网络应用程序,如Etherpad(如上面的视频所示),给他们自己的子域,然后你可以从任何地方访问他们。

BrowserStack

BrowserStack提供自动的屏幕截图和虚拟机,以测试您的网站针对一系列设备和浏览器。如果您希望访问localhost的原因是为了测试,那么您可能会对BrowserStack感兴趣。

您可以使用上述方法在BrowserStack虚拟机中测试本地主机站点,但它也有Chrome和Firefox的浏览器扩展,允许您从它们的服务器访问本地主机。

但是,此功能仅适用于BrowserStack服务,普通公众无法访问。BrowserStack提供免费试用,之后你需要按月付费才能使用这项服务。对于希望访问localhost的唯一原因是进行设备测试的情况,这将非常方便。

如何使用BrowserStack

在这里注册试用BrowserStack.com.他们在网站上很好地记录了本地测试的过程,所以读过吗如果你有兴趣走这条路。

最后,它将允许你在Web上运行的虚拟机中测试你的本地主机站点,如下所示:

在本地主机上查看页面的BrowserStack

玩最喜欢的

在摆弄了所有这些选项之后,我个人最喜欢的应该是ngrok和PageKite。

PageKite似乎是最多方面的解决方案,具有巨大的潜力。多年来,它被开发和扩展以适应各种用途,使其成为一个真正令人印象深刻的应用程序!

Ngrok也因为它的简单性和交通检查员而很棒。对于大多数希望从web访问本地主机的web开发人员来说,它具有足够多的功能。

结论

如果您正在一台具有活跃互联网连接的计算机上工作,您现在可以在短短几分钟内从任何地方访问您的本地主机!这是非常简单的开始,正如你所看到的,不缺乏解决方案!

你用过这些服务吗?你还有其他喜欢的吗?我很想知道你的想法在推特上

Baidu