Flask - Как сделать приложение внешне видимым через маршрутизатор?
Короче говоря
Как вы запускаете простой веб-сайт на основе Flask, видимый в Интернете, с главного ПК, который осуществляет доступ к интернету с беспроводного маршрутизатора?
Детали вопроса
Я хотел бы сделать приложение фляги видимым для Интернета, как Руководство по быстрому запуску.
Если я запускаю простое приложение Flask ниже, оно становится доступным с компьютера в той же сети, что и компьютер хоста, но не с устройства, подключенного через Интернет через другую сеть.
Проблема аналогична обсуждаемой здесь и здесь, с добавленный элемент, который работает на домашнем ПК, кажется, предполагает, что внешние соединения указывают на порт xx маршрутизатора, а не на порт xx компьютера-хоста, как это предлагается в комментариях в это сообщение.
Что я сделал
Ссылаясь на приведенный ниже код, вот что я сделал:
- Проверено мое IP-адрес на панели управления
- отключена вся защита сети в антивирусе
- запустите `ipconfig/all ', находясь на компьютере с Windows
- наконец-то открыл браузер на устройстве, подключенном к другой сети, и указал его на соответствующий IP: порт адрес
В результате "Веб-страница недоступна".
Кто-нибудь сталкивался с той же проблемой? Это проблема маршрутизатора?
Ссылка на флэшку
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(host= '0.0.0.0', port=9000, debug=False)
Ответы
Ответ 1
Основной настройкой будет создание правила, которое отправит запрос на порт 80 и/или порт 443 на назначенный хост в вашей локальной сети.
Пример создания NAT (преобразования адресов) и правила переадресации портов для пересылки входящих HTTP/S-запросов на ваш локальный сетевой сервер с вашим приложением python.
Например:
app.run(host= '192.168.0.58', port=9000, debug=False)
Ваше правило NAT должно указывать на 192.168.0.58 на порт 9000.