1

Я использую Ubuntu 18.04.1 в Virtual Box на MacOS. Я установил сервер localhost в Ubuntu с помощью Python Flask, работающего на http://127.0.0.1:5000/ Я пытаюсь получить доступ к этому локальному хосту с моего Mac, но не могу. Я использовал соединение типа «мост» для виртуального блока, чтобы мой Mac и виртуальный блок могли иметь IP-адрес. Вот изображение моих настроек сети виртуальной коробки:

Настройки сети Virtual Box

Адрес Ubuntu:192.168.1.169 . Когда я 192.168.1.169:5000 я ничего не могу получить, загрузка никогда не заканчивается. Я также попытался открыть брандмауэр Ubuntu для порта 5000 . Неудачно. Почему это происходит?

1 ответ1

0

Я не знаком с Python Flask, но, тем не менее, если вы используете сервер с 127.0.0.1 вы просто ограничиваете его localhost и ничем иным. Это не специфическая концепция Python Flask, а общая сетевая концепция.

Для большинства приложений, работающих на сервере, чтобы приложение было доступно в сети при любой настройке, необходимо запустить приложение на IP-адресе 0.0.0.0 . Более подробную информацию об этом другом ответе можно найти в переполнении стека. И как ясно объяснено в официальном руководстве по быстрому запуску Python Flask:

Внешне видимый сервер

Если вы запустите сервер, вы заметите, что сервер доступен только с вашего собственного компьютера, а не с любого другого в сети. Это значение по умолчанию, потому что в режиме отладки пользователь приложения может выполнить произвольный код Python на вашем компьютере.

Если у вас отключен отладчик или вы доверяете пользователям вашей сети, вы можете сделать сервер общедоступным, просто добавив --host = 0.0.0.0 в командную строку:

flask run --host=0.0.0.0

Это говорит вашей операционной системе прослушивать все публичные IP-адреса.

Если вы не хотите, чтобы приложение было доступно на всех интерфейсах, вам необходимо назначить устройству статический IP-адрес, а затем настроить для этой flask run --host=xxx.xxx.xxx.xxx чтобы использовать этот конкретный статический IP-адрес. , Но для чего-то подобного - когда вы запускаете его на маршрутизаторе через DHCP для личного использования, привязка к 0.0.0.0 не является большой проблемой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .