无法通过互联网访问 Ubuntu Server 20.04 LTS 上的 Flask 应用

无法通过互联网访问 Ubuntu Server 20.04 LTS 上的 Flask 应用

我最近买了一个Raspberry Pi 4 (8GB)并安装了Ubuntu Server 20.04 LTS它。

我的目标是将它变成一个服务器,托管我的所有Python脚本(Flask Websites/ Telegram Bots/etc)。[非常像本地Heroku服务器]

现在,我遵循了教程盲目地,并成功设置了我的Flask应用程序。然而,问题与视频不同,网站可以访问internet,我的可以只能被访问Local Network通过服务器从我的IP。当我将此分享IP给我的朋友时,他们无法查看我的网站。

现在,我做了一些研究,发现了port forwarding。但这似乎也不起作用。

希望在这里找到一些答案。

这是我的nginx配置文件:

server {
        listen 80;
        server_name 192.168.29.49;

        location /static {
                alias /home/tech_savvy_guy/My-Website/static;
        }

        location / {
                proxy_pass http://localhost:8000;
                include /etc/nginx/proxy_params;
                proxy_redirect off;
        }
}

这是一个截屏port forwarding我在路由器上启用了该功能。

答案1

如果你能从你的 LAN 访问它,那么它就可以正常工作。就这样。不要弄乱它。

此后的一切都与 Ubuntu 无关。

您的路由器有两个地址:

  • 一个用于 LAN(例如 192.168.1.1)
  • 另一个适用于更广泛互联网的公共地址(如 38.25.67.186)。

您附近的局域网好友必须使用局域网地址。

您在互联网上的远方朋友必须使用公共地址。

询问 Google“我的 IP 地址是什么?”,您得到的返回结果将是您的路由器的公共地址...因为 Google 在您的 LAN 上没有服务器。

您的 LAN 上的所有设备都共享同一个公共 IP 地址。对于互联网来说,您的整个 LAN 就像一个繁忙的设备(您的路由器)。这就是为什么您需要在路由器上使用端口转发:这样路由器就知道端口 80 请求应该由哪个 LAN 设备处理转发到。

相关内容