Comment fermer ou (dissocier?) Un port laissé ouvert par une application malveillante?

19

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 de l'éclipse n'a aucun effet.

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

Je sais que le redémarrage ou la déconnexion et la réactivation effaceront les ports, mais ce processus est beaucoup plus lent pour moi. Je cherche à fermer de force le port en ligne de commande.

marque
la source

Réponses:

10

La seule façon de fermer de force un port d' écoute est de tuer le processus qui l'écoute. Utilisez lsof, netstat, fuser- en tant que root - à savoir l'ID de processus. Une fois le processus terminé (par lui-même ou en étant tué), le noyau nettoiera automatiquement toutes les sockets qu'il avait ouvertes. (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.)

user1686
la source
19
lsof -n -i

Trouvez le processus que vous recherchez et tuez-le.

Du lsofmanuel :

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

-i [i] Cette option sélectionne la liste des fichiers dont l'adresse 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.

jonnyflash
la source
7
Activez | grep ":9050"(ou quel que soit le numéro de port) pour filtrer facilement la sortie
isaacparrot
9

Vous pouvez utiliser la fusercommande avec le -kcommutateur.

Par exemple, pour fermer le port 111, vous pouvez effectuer les opérations suivantes: fuser -k 111/tcp (cela vous évite également d'avoir à trouver l'ID du processus pour le tuer comme le fait le fuser 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 pour trouver une solution de contournement appropriée.

tony9099
la source
-3

J'ai eu le même problème, recherchez simplement le processus qui écoute ce port en utilisant la commande cmd sur Windows

netstat -a -b

alors vous pouvez l'arrêter avec le gestionnaire de tâches

daqop
la source
2
Désolé, j'ai voté contre. Vous mentionnez "sous Windows". Le paramètre "-b" de netstat, qui affiche les noms des exécutables, est spécifique à Microsoft Windows. (Les variations d'Unix netstat peuvent avoir des fonctionnalités similaires, mais n'utilisent généralement pas ce même paramètre.) Cependant, la question disait "Fedora", donc le demandeur de cette question cherchait des informations sur Fedora 13 64bit, un système d'exploitation différent. La page de manuel de netstat pour Fedora indique que l'utilisation -pmontre le PID (qui peut être utilisé pour identifier le nom de l'exécutable).
TOOGAM
1
Il y a plusieurs erreurs dans cette réponse. La réponse contient une erreur grammaticale qui aurait pu être évitée. La réponse ne s'applique pas non plus à Fedora, qui est clairement mentionné, dans la première phrase de la question. Ce n'est pas comme si la question ne contenait pas ces informations lorsque cette réponse a été soumise il y a 30 minutes, la question n'a pas été modifiée depuis juillet 2011, il y a près de 5 ans. Je prends donc cette réponse pour ce qu'elle est, une réponse «moi aussi», qui est très rarement réellement utile.
Ramhound