2016-09-06 3 views
0

Je viens de commencer à apprendre le développement de réseau en utilisant Flask. Selon son tutoriel officiel:Erreur lors de l'accès à ma page Web à partir du réseau

Externally Visible Server

If you run the server you will notice that the server is only accessible from your own computer, not from any other in the network. This is the default because in debugging mode a user of the application can execute arbitrary Python code on your computer.

If you have the debugger disabled or trust the users on your network, you can make the server publicly available simply by adding --host=0.0.0.0 to the command line:

flask run --host=0.0.0.0 

This tells your operating system to listen on all public IPs.

Cependant, lorsque je tente d'accéder à 0.0.0.0:5000 sur un autre appareil, je suis une erreur: ERR_CONNECTION_REFUSE. En fait, je pense que ce comportement est raisonnable, puisque les gens du monde entier peuvent utiliser 0.0.0.0:5000 pour différents tests, mais ce tutoriel ne signifie pas que l'ajout de --host=0.0.0.0 peut rendre ma page Web "accessible non seulement depuis votre propre ordinateur, mais aussi depuis n'importe quel ordinateur. autre dans le réseau "?

Alors, ma question est:

  1. Qu'est-ce que l'ajout --host=0.0.0.0 faire?
  2. Comment puis-je accéder à ma page Web sur le périphérique B pendant que le serveur fonctionne sur le périphérique A?
+1

J'ai signalé cette question hors-sujet car elle appartient à super-utilisateur. Quoi qu'il en soit, '--host = 0.0.0.0' signifie seulement que le serveur va écouter les connexions de toutes les adresses IP, pas que vous devriez utiliser' http: //0.0.0.0: 5000' pour y accéder. Vous devez utiliser votre adresse IP externe, et assurez-vous qu'elle est transférée dans votre routeur si vous êtes derrière NAT (ou si vous êtes dans le réseau local, vous devez utiliser l'adresse IP locale du PC hôte). Tout plus que cela est vraiment hors de portée pour SO. – DeepSpace

Répondre

2

Vous n'accédez pas au serveur Flask sur un autre ordinateur en accédant au 0.0.0.0:5000. Au lieu de cela, vous devez mettre dans l'adresse IP de l'ordinateur sur lequel il s'exécute.

Par exemple, si vous développez sur un ordinateur qui a une adresse IP 10.10.0.1, vous pouvez exécuter le serveur comme ceci:

flask run --host=0.0.0.0 --port=5000 

Cela va démarrer le serveur (sur 10.10.0.1:5000) et écouter toutes les connexions de nulle part. Maintenant, votre autre appareil (par exemple, sur 10.10.0.2) peut accéder à ce serveur en accédant au http://10.10.0.1:5000 dans le navigateur.

Si vous ne disposez pas du host=0.0.0.0, le serveur sur 10.10.0.1 n'écouter les connexions de lui-même (localhost). En ajoutant ce paramètre, vous lui dites d'écouter des connexions externes à lui-même.

+0

Merci d'avoir répondu à ma question probablement hors-sujet, mais l'erreur 'ERR_CONNECTION_REFUSE' reste. La commande que j'ai utilisée pour récupérer mon adresse IP externe est 'curl -s http://whatismijnip.nl | cut -d" "-f 5 '. –

+0

Vous n'avez pas de port spécifié dans cette commande 'curl'. Est-ce que 'http: //whatismijnip.nl: 5000' fonctionne? En outre, avez-vous un pare-feu sur le périphérique hôte qui empêche les connexions? – Andy

+0

Pare-feu est désactivé, et 'http: //whatismijnip.nl: 5000' ne fonctionne ni sur le périphérique A ni sur le périphérique B :(Peut-être que j'ai juste échoué à obtenir l'adresse IP externe correcte? –