web-dev-qa-db-fra.com

Comment fermer ou (dissocier?) Un port laissé ouvert par une application non autorisée?

J'utilise Fedora 13 64bit. Mon programme Eclipse démarre un serveur sur le port 9050 mais j’arrête le programme. Eclipse ne parvient pas à arrêter correctement le serveur. Le redémarrage d'Eclipse n'a aucun effet.

Comment puis-je fermer ou dissocier un port de force en ligne de commande?

Je sais que le redémarrage ou la fermeture de session, puis de nouveau connecté effacera les ports, mais ce processus beaucoup plus lent pour moi. Je cherche à forcer la fermeture du port en ligne de commande.

17
Mark

La seule façon de fermer de force un port d'écoute est de supprimer le processus qui l'écoute. Utilisez lsof, netstat, fuser - en tant que root - pour connaître l'ID du processus. Une fois le processus terminé (par lui-même ou en étant tué), le noyau nettoie automatiquement tous les sockets ouverts. (Cependant, il peut arriver que des programmes se voient refuser l'écoute sur le même port pendant quelques minutes; dans ce cas, tout ce que vous pouvez faire est d'attendre.)

8
grawity
lsof -n -i

Trouvez le processus que vous cherchez et éliminez-le.

De lsof manuel :

- n Cette option empêche la conversion des numéros de réseau en noms d'hôte pour les fichiers réseau. L'inhibition de la conversion peut accélérer l'exécution de lsof. C'est également utile lorsque la recherche de nom d'hôte ne fonctionne pas correctement.

- i [i] Cette option permet de sélectionner la liste des fichiers dont l'une des adresses Internet correspond à l'adresse spécifiée dans i. Si aucune adresse n'est spécifiée, cette option sélectionne la liste de tous les fichiers réseau Internet et x.25 (HP-UX).

Même réponse à cette question je pense.

17
jonnyflash

Vous pouvez utiliser la commande fuser avec le commutateur -k.

Par exemple, pour fermer le port 111, vous pouvez effectuer les opérations suivantes: fuser -k 111/tcp (vous éviterez ainsi les tracas de la recherche de l'ID du processus pour le tuer de la même manière que le fuser le fait implicitement)

Notez que certains processus redémarrent automatiquement une fois fermés. Pour cela, vous devez vérifier le fichier de configuration de chaque processus afin de trouver une solution de contournement appropriée.

7
tony9099