web-dev-qa-db-fra.com

Comment ouvrir un port fermé dans Ubuntu?

J'essayais de tuer un processus qui s'exécutait sur le port 8080 et de l'utiliser pour un débogage distant.

Où mon code source est sur mon ordinateur hôte, et le jar compilé est sur un autre serveur Ubuntu. Par conséquent, j’essayais de faire un débogage distant sur le port 8080, j’ai modifié les paramètres nécessaires sur ma configuration IntelliJ afin de procéder au débogage distant et j’ai essayé d’exécuter le fichier jar à partir de la machine serveur:

Java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8080 hdfstohive-1.0-SNAPSHOT-jar-with-dependencies.jar

Depuis que j'ai arrêté le processus en cours d'exécution sur mon serveur, je ne peux plus voir le port s'ouvrir lorsque j'ai également utilisé nmap serverip et netstat -atun.

J'ai donc essayé de l'ajouter à la règle de pare-feu (Sudo ufw allow 8080/tcp) et à la iptable (Sudo iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 8080 -j ACCEPT) également, je ne suis toujours pas en mesure de voir le port en cours d'ouverture. J'ai aussi essayé de désactiver le pare-feu, mais toujours pas de chance.

Donc, ce dont j'ai besoin, c'est d'ouvrir ce port pour pouvoir effectuer le débogage à distance à partir de ma machine hôte. Je suis sûr que je manque quelque chose de crucial sur ce que j'ai déjà fait.

Est-ce que je me dirige vers une chute? Toute aide pourrait être appréciée.

1
Kulasangar

Sur Ubuntu, tous les ports sont ouverts, à moins que vous ne disposiez d’un pare-feu ou d’une application qui le bloque. Dans des circonstances normales, l'application qui s'exécute sur le port est pour LISTENING. Pour qu'il puisse recevoir du port.

Le blocage ou fermeture du port utilise une référence à un bloc de pare-feu.

Donc, si vous ne bloquez pas le port par votre pare-feu, il est ouvert.

Un port est généralement considéré comme ouvert lorsqu'un programme est en cours d'exécution et LISTENING sur le port. Vous pouvez savoir quels ports ont des programmes en cours d'exécution (LISTENING) avec cette commande (parmi beaucoup d'autres commandes):

$ netstat -tulnp | grep "LISTEN"

Vous pouvez identifier quelle application utilise le port avec cette commande (dans ce cas, vérifiez le port 80):

$ Sudo lsof -i tcp:80

Port ouvert

Vous avez mentionné que vous a interrompu le processus en cours d'exécution sur votre machine serveur et que vous ne pouvez plus voir le port en cours d'ouverture. Vous ne le voyez pas être ouvert parce que rien ne tourne dessus.

Vous pouvez tester votre port en question en exécutant netcat dessus. Netcat est un utilitaire pour TCP et les connexions et écoute UDP.

Exécutez ceci sur votre port:

$ netcat -l 1234

Ensuite, à partir d'un autre ordinateur, exécutez ce qui suit:

$ telnet serverIP 1234
Trying 192.168.15.81...
Connected to ubunzeus.apollo3.com.
Escape character is '^]'.
this is a test

Vous remarquerez que le texte "Ceci est un test" apparaît sur la console de votre serveur. C'est un moyen de tester le port. Vous pouvez frapper Ctrl+C sur le serveur pour annuler l'application après le test.

J'espère que cela a aidé à clarifier ce qui se passe dans vos ports.

9
L. D. James