Come consentire le connessioni remote a Flask?

21

All'interno del sistema, in esecuzione su una macchina virtuale, posso accedere al server in esecuzione a 127.0.0.1:5000 .

Sebbene l'indirizzo "remoto" del vm sia 192.168.56.101 (ping e ssh funzionano bene), non posso accedere al server con 192.168.50.101:5000 né dalla macchina virtuale né da quella locale.

Suppongo che ci sia qualcosa che impedisce le connessioni remote.

Ecco / etc / network / interfaces:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0

ufw è inattivo.

Come posso risolvere questo problema?

    
posta Ilya Smagin 01.12.2012 - 22:34

3 risposte

39

Prima di tutto - assicurati che il tuo server HTTP stia ascoltando su 192.168.50.101:5000 o ovunque ( 0.0.0.0:5000 ) controllando l'output di:

netstat -tupln | grep ':5000'

Se non lo è, consulta la documentazione di Flask per collegarti a un indirizzo diverso da localhost.

Se lo è, autorizza il traffico usando iptables:

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

Dalla documentazione di Flask:

  

Server visibile esternamente Se si esegue il server, questo lo si noterà   il server è accessibile solo dal tuo computer, non da nessuno   altro nella rete. Questo è l'impostazione predefinita perché in modalità di debug a   l'utente dell'applicazione può eseguire codice Python arbitrario sul tuo   computer.

     

Se hai il debug disabilitato o ti fidi degli utenti della tua rete, puoi farlo   rendere il server disponibile al pubblico semplicemente cambiando la chiamata di    run() metodo per apparire come segue:

app.run(host='0.0.0.0')
    
risposta data Marcin Kaminski 01.12.2012 - 22:49
0

Ho appena avuto lo stesso problema. Per risolverlo, ho aggiornato il modo di eseguire l'applicazione:

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

Usando l'host = 0.0.0.0 permettimi di accedere alla mia app attraverso la mia rete locale.

    
risposta data Alex andre 24.02.2018 - 15:14
0

Il modo migliore per farlo

flask run --host=0.0.0.0
    
risposta data Hassaan 26.07.2018 - 18:31

Leggi altre domande sui tag