2017-09-07 5 views
1

J'ai une pi de framboise 3 et j'ai fait un webserver de flacon, et maintenant je cours un site Web. Le problème est que je ne peux obtenir ce site sur mon pi. Je peux accéder à cette page sur mon pi en tapant 127.0.0.1:5000 dans le navigateur.ne peut pas obtenir le site Web de flacon d'ailleurs

Si je tape sans guillemets "my_raspbery_pi_ip :5000" dans le navigateur sur mon ordinateur portable Windows ou sur ma tablette android, je reçois

page non trouvée my_raspbery_pi_ip est 192.168.0.17

[email protected]:~ $ netstat --tcp --listening --programs --numeric 
(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  
PID/Program name 
tcp  0  0 127.0.0.1:5000   0.0.0.0:*    LISTEN  2322/python  
tcp  0  0 127.0.0.1:3350   0.0.0.0:*    LISTEN  -    
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  -    
tcp  0  0 127.0.0.1:631   0.0.0.0:*    LISTEN  -    
tcp  0  0 0.0.0.0:3389   0.0.0.0:*    LISTEN  -    
tcp6  0  0 :::80     :::*     LISTEN  -    
tcp6  0  0 :::21     :::*     LISTEN  -    
tcp6  0  0 :::22     :::*     LISTEN  -    
tcp6  0  0 ::1:631     :::*     LISTEN  - 

Qu'est-ce que peut être le problème?

Merci

EDIT

from flask import Flask 
from time import strftime, sleep, localtime 
from flask import render_template 
import os 

app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return render_template('home.html') 

if __name__ == "__main__": 
     app.run(host='0.0.0.0', debug=True) 
+0

Avez-vous essayez 'app.run (host = '0.0.0.0')' au lieu de 'app.run()' – tuannv562

+0

Je suit pour apposé le script: if __name__ == "__main__": app.run (host = '0.0.0.0', debug = True) Mais encore "Ce site ne peut pas être atteint" –

+0

Qu'est-ce que Est-ce que 'netstat' montre après votre changement? – jszakmeister

Répondre

0

Pour un autre appareil pour pouvoir accéder à un serveur Web sur votre pi, vous devez:

1/rendre le serveur Web exécuté sur '0.0.0.0:5000' donc il écoute sur tous les ips

2/configurer votre pi pour accepter les demandes entrantes (sur le port 5000) de votre locale réseau

3/assurez-vous que l'autre appareil est connecté à votre réseau local

4/à partir du navigateur de l'autre appareil (ou tout autre client web) envoyer une requête GET sur your_pi_ip: 5000

NB: Je mentionnez le port 5000 ici parce qu'il semble être le défaut utilisé par le serveur de flask, mais n'importe quel port libre ferait l'affaire. NB2: Bien sûr, cela ne rendra votre site accessible qu'à partir de votre réseau local ... Pour un accès public, vous avez besoin d'un serveur accessible au public.

+0

Je pense que j'ai terminé tout de votre liste, mais je pense que je n'ai rien fait dans votre 2/ligne. Pourriez-vous regarder ce que l'erreur peut être? merci https://pastebin.com/J7rpKmbu –

+0

Je crains de ne pas être d'une grande aide ici - je suis un très mauvais administrateur système, la liste ci-dessus était principalement une image de 1000 pieds de haut.Mais à partir de votre pastebin, il semble que votre serveur fonctionne toujours sur 127.0.0.1:5000 (première ligne de résultats netstats: "tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 2978/python"). –

0

Pourriez-vous s'il vous plaît fournir un extrait de code où votre serveur web écoute/s'expose?

Il semble que votre serveur écoute 127.0.0.1. Il s'agit de l'adresse de bouclage, ce qui signifie qu'elle ne recevra que les requêtes locales à la machine.

Vous pouvez utiliser 0.0.0.0 pour écouter toutes les adresses.

Pour ce faire, vous devriez avoir quelque chose dans le goût de:

app.run(host='0.0.0.0') 
+0

code snippter ajouté –