![要从 LAN 外部查看 Web 服务器,需要监听哪个 IP?](https://linux22.com/image/1436618/%E8%A6%81%E4%BB%8E%20LAN%20%E5%A4%96%E9%83%A8%E6%9F%A5%E7%9C%8B%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E9%9C%80%E8%A6%81%E7%9B%91%E5%90%AC%E5%93%AA%E4%B8%AA%20IP%EF%BC%9F.png)
好的,我对网络和后端 Web 开发还不太熟悉,目前正在学习 Flask。
我刚刚在笔记本电脑上打开了一个基本的小型 HTTP 服务器(“Hello World!”)并在端口 5000 上运行它。如果我在浏览器中访问 127.0.0.1:5000,我就能看到正确的消息。
并且如果(在家里的另一台计算机上)我转到 192.168.1.40:5000(用于服务器的计算机的私有 IP),那么我也可以从那里看到它。
但是,如果我想让朋友能够从本地网络之外、很远的地方访问它,该怎么办?他们如何找到它?
我向 Google 询问了我的 IP(IPv4)是什么,并尝试使用它,但正如我所料,它没有起作用,因为(据我所知)它只是解析路由器本身,而不一定是运行服务器的特定计算机。我在这里做错了什么?
答案1
如果您使用家庭互联网并且位于路由器后面,则需要设置一个简单的端口转发到本地 PC。打开路由器配置并指定端口 5000 应指向您的私有地址 (192.168.1.40)。
对于托管服务的机器,建议将任何私有地址从动态切换到静态,这样它们的地址就不会改变,从而不会破坏端口转发。只需在机器的网络配置中指定一个位于路由器动态地址池(可以更改)之外的地址,然后将路由器地址指定为网关和 DNS 服务器即可。
示例池空间:192.168.1.100 - 192.168.1.200
示例路由器 IP:192.168.1.1
示例 Web 服务器私有静态 IP:192.168.1.2
然后其他人必须访问你的公共 IP 地址(你可以通过类似以下服务进行检查)http://www.whatismyip.com/或类似)。
您的公共 IP 通常是动态的。这意味着它可能会不时发生变化。您可以购买静态 IP(并非所有 ISP 都能提供)或为此目的使用特殊 DNS 服务(例如,http://www.no-ip.org/,http://dyn.com和类似的)。
答案2
看http://www.howtogeek.com/117371/how-to-find-your-computers-private-public-ip-addresses/详细解释您的公共和私有 IP 地址。此外,您需要一条防火墙规则来启用IP 列表或启用全部IP 用于将传入消息发送到您的 PC;您可以将流量限制到某个端口 [例如 HTTP 的 80] 或端口数组。完成后,您可能希望删除该防火墙规则。
此外,您的路由器可能还需要进行配置以启用传入流量。