Внутри системы, работающей на виртуальной машине, я могу получить доступ к работающему серверу на 127.0.0.1:5000
.
Хотя «удаленный» адрес виртуальной машины равен 192.168.56.101 (ping и ssh работают нормально), я не могу получить доступ к серверу с 192.168.50.101:5000 ни с виртуальной машины, ни с локальной.
Полагаю, что-то мешает удаленным соединениям.
Вот / etc / network / interfaces:
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
ufw неактивен.
Как мне решить эту проблему?
В первую очередь - удостоверяются, что Ваш сервер HTTP слушает на 192.168.50.101:5000
или везде (0.0.0.0:5000
) путем проверки вывода:
netstat -tupln | grep ':5000'
Если это не, консультируйтесь с документацией Фляги для привязки с адресом кроме localhost.
Если это, позвольте трафик с помощью iptables:
iptables -I INPUT -p tcp --dport 5000 -j ACCEPT
Из документации Фляги:
Внешне Видимый Сервер при выполнении сервера, Вы заметите, что сервер только доступен от Вашего собственного компьютера, не от любого другого в сети. Это - значение по умолчанию, потому что в режиме отладки пользователь приложения может выполнить произвольный код Python на Вашем компьютере.
Если Вы имеете отключенную отладку или доверяете пользователям в Вашей сети, можно сделать сервер общедоступным просто путем изменения вызова
run()
метод для сходства с этим:app.run(host='0.0.0.0')
Лучший способ сделать это
flask run --host=0.0.0.0
У меня только что была такая же проблема. Чтобы решить эту проблему, я обновил способ запуска приложения:
app.run(debug=True,host='0.0.0.0')
Используя host = 0.0.0.0, позвольте мне получить доступ к моему приложению через мою локальную сеть.