【发布时间】:2012-07-07 01:01:18
【问题描述】:
我用来在我的本地主机上开发我的项目,在 ubuntu 机器上的 apache 上。 有时我需要向我的客户展示进度。 是否可以从远程机器访问本地主机?
【问题讨论】:
-
这个问题的命名有点模糊:
localhost是本地环回地址127.0.0.1的事实上的标准 (DNS) 名称,不能 从(本地)主机本身的外部访问。
标签: networking
我用来在我的本地主机上开发我的项目,在 ubuntu 机器上的 apache 上。 有时我需要向我的客户展示进度。 是否可以从远程机器访问本地主机?
【问题讨论】:
localhost 是本地环回地址127.0.0.1 的事实上的标准 (DNS) 名称,不能 从(本地)主机本身的外部访问。
标签: networking
您可以使用为您的本地服务提供隧道的服务,例如 localtunnel、pagekite 或 ngrok。这些服务简化了远程演示、移动测试的设置,有些还提供请求检查。
我发现 ngrok 很有用,因为它提供了一个 https 地址,这是测试网络摄像头访问等内容所必需的。
【讨论】:
此答案中使用的术语:
如果主机和客户端在同一个网络,你可以通过输入从客户端访问主机
http://(hostname or ip address)
在您客户的浏览器中。如果站点未在端口 80(用于 http)或端口 443(用于 https)上运行,请按原样添加帖子(此示例适用于您的服务器在 8080 上,这是一个常见的备用端口):
http://(hostname or ip address):8080
如果主机和客户端不在同一个网络上,并且您需要从客户端通过 Internet 访问主机以查看主机,则您需要使主机在 Internet 上可供客户端访问。
如果您不确定自己在做什么,这可能对您的信息安全极其危险,我建议您购买一个便宜的托管帐户(可以花 10 美元/一个月在 1:1 托管之类的地方)。
【讨论】:
有很多方法可以做到这一点 - 区别在于安全性、配置的简单性和解决方案的成本。
下面我输入一些方法和一些分析
这需要路由器配置(将您的路由器公共端口转发到本地端口),但这需要您有固定的 IP 地址。如果您的 IP 地址不固定(在大多数情况下),您需要使用动态 DNS 服务才能使用域名而不是 IP 地址(有很多可用的免费服务)。在这里,我们仍然有安全问题未解决。为了解决安全问题,即设置 ssl 证书,我们可以使用 Let's Encrypt 服务(https://letsencrypt.org/)来获取免费证书,但是我们应该配置本地服务器以使用证书,或者我们应该设置反向代理(在大多数情况下是 nginx 或 apache)并配置使用证书的代理。
结论 - 如果我们想要安全连接,很难设置(可以通过免费完成)
对于这种情况,我们应该使用 VPN 服务。我们应该将我们的本地机器连接到 VPN,然后在另一端,我们应该将客户端的机器连接到 VPN,这将允许我们通过本地 IP 地址访问 localhost。我们可以设置自己的 VPN 服务器,但这需要知识才能正确完成。
结论 - 简单、付费、安全、糟糕的用户体验(每次需要连接到本地主机时都连接到 VPN)
对于这种情况,我们可以使用免费的隧道服务(即https://tunnelin.com/)。该过程非常简单,即注册用户,将您的设备连接到服务(通过在设备上运行一行命令),使用 Web 界面打开/关闭到设备的安全隧道。
结论——免费、安全、简单
【讨论】:
是的,如果您有一个公共和静态 IP。通常,ISP 在会话期间提供静态 ip(即,直到您断开连接并再次连接)
【讨论】: