Como permitir conexões remotas ao Flask?

19

Dentro do sistema, em execução na máquina virtual, posso acessar o servidor em execução em 127.0.0.1:5000 .

Embora o endereço 'remoto' da vm seja 192.168.56.101 (ping e ssh funcionam bem), não consigo acessar o servidor com 192.168.50.101:5000 nem da máquina virtual nem da local.

Eu acho que há algo impedindo conexões remotas.

Aqui está / etc / network / interfaces:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0

ufw está inativo.

Como corrijo este problema?

    
por Ilya Smagin 01.12.2012 / 22:34

2 respostas

36

Primeiro, verifique se o seu servidor HTTP está escutando 192.168.50.101:5000 ou em todos os lugares ( 0.0.0.0:5000 ) verificando a saída de:

netstat -tupln | grep ':5000'

Se não for, consulte a documentação do Flask para vincular a um endereço diferente de localhost.

Se for, permita o tráfego usando iptables:

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

Da documentação do Flask:

  

Servidor visível externamente Se você executar o servidor, perceberá que   o servidor só é acessível a partir do seu próprio computador, não de qualquer   outro na rede. Este é o padrão porque no modo de depuração   usuário do aplicativo pode executar código Python arbitrário no seu   computador.

     

Se você tiver depurado desativado ou confiar nos usuários em sua rede, você pode   tornar o servidor publicamente disponível simplesmente alterando a chamada do   método run() para ficar assim:

app.run(host='0.0.0.0')
    
por Marcin Kaminski 01.12.2012 / 22:49
0

Acabei de ter o mesmo problema. Para resolvê-lo, atualizei a maneira de executar o aplicativo:

 app.run(debug=True,host='0.0.0.0')

Usando o host = 0.0.0.0, permita-me acessar meu aplicativo por meio da minha rede local.

    
por Alex andre 24.02.2018 / 15:14