Как разрешить удаленные соединения с Flask?

Внутри системы, работающей на виртуальной машине, я могу получить доступ к работающему серверу в 127.0.0.1:5000.

Хотя «удаленный» адрес vm равен 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 неактивен.

Как исправить эту проблему?

22 голоса | спросил Ilya Smagin 2 SunEurope/Moscow2012-12-02T01:34:58+04:00Europe/Moscow12bEurope/MoscowSun, 02 Dec 2012 01:34:58 +0400 2012, 01:34:58

1 ответ


40

Прежде всего - убедитесь, что ваш HTTP-сервер прослушивает 192.168.50.101:5000 или везде (0.0.0.0:5000), проверив вывод:

netstat -tupln | grep ':5000'

Если это не так, обратитесь к документации Flask для привязки к адресу, отличному от localhost.

Если это так, разрешите трафик с помощью iptables:

iptables -I INPUT -p tcp --dport 5000 -j ACCEPT

Из документации Flask:

  

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

     

Если отладка отключена или доверена пользователям в вашей сети, вы можете   сделать сервер общедоступным просто, изменив вызов   run(), чтобы выглядеть так:

app.run(host='0.0.0.0')
ответил Marcin Kaminski 2 SunEurope/Moscow2012-12-02T01:49:13+04:00Europe/Moscow12bEurope/MoscowSun, 02 Dec 2012 01:49:13 +0400 2012, 01:49:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132