如何将本地主机暴露给互联网?(端口转发?)

14

我在本地主机上运行Apache/php,并希望能够从互联网公开访问。

我认为通过端口转发可以实现这一目标?有人能指点我一下吗?


2
可能是一个适合在http://serverfault.com/上提问的问题。 - Orbling
1
希望能够得到一些关于答案的反馈,这个社区就是靠这个驱动的,请选择一个答案以便我们关闭这个话题。 - Cristiano Fontes
最简单和更安全的选择是使用Mar Orlygsson提到的http://forwardhq.com或http://pagekite.net。 - so_mv
7个回答

16

先生,您应该尝试使用ngrok,它是免费的,并且适用于我使用的所有工具(节点服务器、xampp等)。


这个东西真是太棒了。不到5分钟就让我上手了。非常感谢! - Sebastien De Varennes
我是通过谷歌来到这里的。最终使用了Ngrok并切换到http://localhost.run/。原因在于这个:https://dev59.com/tloV5IYBdhLWcg3wN8dD#63515049 - kiru

10

这要看你的连接方式。

如果你的计算机拥有公共IP地址,它已经连接到互联网上了。然后你只需要在本地防火墙和家庭/企业防火墙上允许端口80的连接即可。

如果你的计算机在一个机顶盒或企业网络中,那么你很可能没有连接到互联网。在某些情况下,路由器会在本地(不可路由)网络和互联网之间进行NAT(网络地址转换)。在这种情况下,你需要在机顶盒或路由器上设置端口转发。


假设我的公共IPv4地址(如Google上的whatismyip所示)是121.232.343.113。我有一个在端口5000上运行的本地服务器。我想让互联网上的另一台计算机(可能是另一个城市的某个人)通过类似于121.232.343.113:5000的地址访问本地服务器。是否可能仅通过软件调整来实现这一点? - progyammer
1
当然。如果没有防火墙和NAT,那么它就可以直接使用,您不需要做任何事情。如果您的服务器在代理后面,则需要允许连接到端口5000。 如果您的服务器在NAT后面,则需要指示NAT将其公共IP地址的端口5000重定向到LAN中您机器的端口5000。这对于大多数NAT盒子来说非常容易。 - ChrisJ

4
你可能想要了解一下 Pagekite - 它是一个开源软件,可以让你将本地资源暴露给外部互联网,而无需重新配置路由器或防火墙。
还有一个类似的服务叫做Show off,它也可以实现类似的功能,但似乎功能有些受限。

这是一个很好的发现。你使用它吗? - so_mv

1
你可以尝试使用beame-insta-ssl,这是一种获取免费隧道服务和免费SSL证书以公开本地主机的好方法。它在git上是开源的,链接在这里:https://github.com/beameio/beame-insta-ssl/

0

通过OpenVPN或SSH隧道进行端口转发的另一个工具是https://portmap.io。如果您在本地Apache上运行多个虚拟主机,可以使用所需的主机名设置主机标头。


0
只有端口转发才能起作用,但你需要通过服务器的IP地址连接到它。
去dyndns.com看一下,在那里你可以获取一个指向你服务器的DNS ID。
之后,你将路由器的80号端口(HTTP)或443号端口(HTTPS)设置为指向你的电脑HTTP服务器端口(这可以是任意端口)。

0
这取决于你所说的本地主机是什么意思。每个系统都有自己的“本地主机”。
如果你的意思是你有类似这样的设置:“你的系统”<--->“网关/无线路由器”<--->互联网,那么你应该配置端口映射,将你的路由器外部接口映射到你的服务器IP地址上。请查阅你的网关/路由器文档以获取更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接