Ne peut pas ouvrir le port 8080 sur Google Compute Engine sous Debian
Je suis en train de lancer un simple Python serveur http qui affiche "hello world" sur le port 8080 à l'aide d'un micro instance. J'ai aussi 4 cas de Tornade, derrière Nginx. La connexion à Nginx/Tornade sur le port 80 n'est pas un problème.
J'ai ajouté le port 8080 à mes paramètres de pare-feu, et a assuré le port 8080 est ouvert et à l'écoute sur le serveur, mais peu importe ce que je fais, ma connexion est toujours refusé. J'ai essayé de connecter à l'aide de navigateurs, telnet et wget et chaque connexion est refusée.
Voici la sortie 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 mon iptables liste
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, 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()
quelques bonnes directions ici, une chose que j'ai manqué, en raison de la saisie semi-automatique sur le terrain, a été le
/0
sur la fin de l'adresse ip source d'entrée. dès que je l'ai ajouté à ` 0.0.0.0` il a travaillé.OriginalL'auteur ryanovas | 2014-09-17
Vous devez vous connecter pour publier un commentaire.
Votre réseau correspondantes règle de pare-feu? Suivez les étapes suivantes pour créer.
Aller à la Les Développeurs De La Console et cliquez sur le projet correspondant.
Cliquez sur 'Calculer'
Cliquez sur "Réseaux"
Cliquez sur le nom du réseau correspondant. Vous pouvez le voir dans le réseau qui est de votre exemple, en cliquant sur "VM instances en vertu de la" Compute Engine " de la section ou avec la commande:
gcloud compute instances describe <instance> | grep "network:" | awk -F/'{print $(NF)}'
Vertu des règles de Pare-feu, cliquez sur "Créer nouveau"
Entrez un nom pour la règle de pare-feu et dans le domaine des Protocoles de '& ports type: tcp:8080
Sauver la règle
Après cela, vous devriez être en mesure d'accéder à votre serveur HTTP.
Sinon, vous pouvez essayer de voir si votre machine reçoit les paquets TCP SYN dans le port avec la commande:
sudo tcpdump -i eth0 port 8080
Espère que cela aide
Salut, ce qui a résolu le problème pour moi, c'est ceci:en plus de tcp:8080 j'ai dû ajouter udp:8080 ('Protocoles & ports" devient tcp:8080;udp:8080).
IMPORTANT! L'ouverture du lien de compute engine ouvre httpS ! vous souhaitez supprimer que S et utiliser le protocole HTTP (lors de l'élaboration... et en utilisant le port 8080 et comme...)
Merci résolu, mais d'aider la personne à côté de ses pas sur 'Calculer' ses VPC Réseau -> règles de Pare-feu.
Oh mon dieu, je vous remercie de l'homme.
OriginalL'auteur Adrián
De la CME de la Console Web > Réseaux > règles de Pare-feu > modifier votre RÈGLE, retirez la CIBLE de TAGS et de les appliquer.
GL
OriginalL'auteur apalazzin
Toujours pas sûr de ce qui s'est passé, mais j'ai supprimé mon exemple et réseau, puis créé de nouveaux. La nouvelle instance et le réseau semble fonctionner correctement, donc je ne peux que supposer que quelque chose se passe mal lors de la lecture autour avec l'ancien réseau que la nouvelle ne semble pas avoir le même problème.
OriginalL'auteur ryanovas
probablement somethings va mal lorsque Vous avez créé la règle de réseau. Quand une règle de réseau est décrit et liées Balise meta est créé, s'assurer que les VMs instances contiennent la même Étiquette, de sorte que le voulait le trafic sera redirigé vers la machine.
OriginalL'auteur marco strina
assurez-vous d'ajouter le port de droite.
la réponse ci-dessus, les états "tcp:80" , mais cela ne fonctionnera pas si votre serveur est en cours d'exécution sur un autre port.
c'est probablement la raison pour laquelle il n'est pas de travailler pour les autres
OriginalL'auteur Guruprasad GV