Impossible d'ouvrir le port 8080 sur Google Compute Engine sous Debian

j'essaie d'exécuter un serveur http Python simple qui affiche "hello world" sur le port 8080 en utilisant une micro instance. J'ai aussi 4 cas de tornade derrière Nginx. Se connecter à Nginx / Tornado sur le port 80 n'est pas un problème.

j'ai ajouté le port 8080 à mes paramètres de pare-feu, et je me suis assuré que le port 8080 est ouvert et écoute sur le serveur, mais peu importe ce que je fais, ma connexion est toujours refusée. J'ai essayé de me connecter en utilisant les navigateurs, telnet et wget et chaque la connexion est refusée.

voici le résultat de netstat -an | grep "LISTEN "

tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8002            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8003            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::8000                 :::*                    LISTEN
tcp6       0      0 :::8001                 :::*                    LISTEN
tcp6       0      0 :::8002                 :::*                    LISTEN
tcp6       0      0 :::8003                 :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

voici ma liste iptables

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

voici le script Python que j'utilise:

#!/usr/bin/python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer

PORT_NUMBER = 8080

#This class will handles any incoming request from
#the browser
class myHandler(BaseHTTPRequestHandler):

   #Handler for the GET requests
   def do_GET(self):
      self.send_response(200)
      self.send_header('Content-type','text/html')
      self.end_headers()
      # Send the html message
      self.wfile.write("Hello World!")
      return

try:
   #Create a web server and define the handler to manage the
   #incoming request
   server = HTTPServer(('', PORT_NUMBER), myHandler)
   print 'Started httpserver on port ' , PORT_NUMBER

   #Wait forever for incoming htto requests
   server.serve_forever()

except KeyboardInterrupt:
   print '^C received, shutting down the web server'
   server.socket.close()
17
demandé sur halfer 2014-09-17 05:01:20

5 réponses

votre réseau a-t-il la règle de pare-feu correspondante? Suivez les étapes suivantes pour créer.

  1. Aller à l' Console Des Développeurs et cliquez sur le projet correspondant.

  2. Cliquez sur 'Calculer'

  3. Cliquez sur 'Réseaux'

  4. Cliquez sur le nom du réseau correspondant. Vous pouvez voir dans quel réseau est votre instance en cliquant sur "instances VM" sous la rubrique "calculer". Moteur de section ou avec la commande:

    gcloud compute instances describe <instance> | grep "network:" | awk -F/ '{print $(NF)}'

  5. sous la section Firewall rules, cliquez sur 'Create new'

  6. entrez un nom pour la règle du pare-feu et dans le champ 'protocoles & ports' type: tcp: 8080

  7. Enregistrer la règle

après cela, vous devriez pouvoir accéder à votre serveur HTTP.

sinon vous pouvez essayer de voir si votre machine reçoit la syntaxe TCP paquets dans ce port avec la commande:sudo tcpdump -i eth0 port 8080

j'Espère que ça aide

30
répondu Adrián 2014-09-17 08:28:24

in GCE Web Console > Networks > Firewall rules > edit your RULE, remove TARGET TAGS and apply.

GL

7
répondu apalazzin 2015-05-06 18:51:26

toujours pas sûr de ce qui a mal tourné, mais j'ai supprimé mon instance et le réseau en a créé de nouvelles. La nouvelle instance et le réseau semblent fonctionner correctement, donc je ne peux que supposer que quelque chose s'est mal passé en jouant avec l'ancien réseau car le nouveau ne semble pas avoir le même problème.

0
répondu ryanovas 2014-09-17 13:32:48

probablement quelque chose tourne mal quand vous avez créé la règle de réseau. Lorsqu'une règle de réseau est décrite et que la Métabalise correspondante est créée, assurez-vous que les instances VMs contiennent la même Métabalise, de sorte que le trafic voulu sera redirigé vers la machine.

0
répondu marco strina 2014-09-18 09:26:04

assurez-vous d'ajouter le port de droite. la réponse ci-dessus indique "tcp:80" , mais cela ne fonctionnera pas si votre serveur tourne sur un autre port. c'est probablement la raison pour laquelle il ne fonctionne pas pour les autres

0
répondu Guruprasad GV 2014-11-09 20:03:20