Libérer un port TCP / IP?


Réponses:


214

Comme les autres l'ont dit, vous devrez tuer tous les processus qui écoutent sur ce port. Le moyen le plus simple de le faire serait d'utiliser la commande fuser (1). Par exemple, pour voir tous les processus à l'écoute des requêtes http sur le port 80 (exécutez en tant que root ou utilisez sudo):

# fuser 80/tcp

Si vous voulez les tuer, ajoutez simplement l'option -k.


1
J'ai trouvé que l'envoi d'une demande au port le nettoie également (je ne suis pas un expert Linux cependant)
Matej

1
Pour installer fuser sur Debian: sudo apt-get install psmisc ( bitflop.com/document/107 )
Korneel

1
Cela a fonctionné, mais j'ai dû installer psmisc aussi sur CentOs 7 ( sudo yum install psmisc)
Marlon Bernardes

1
kill -9 $(fuser 80/tcp 2>/dev/null)
Hanynowsky

76

Pour tuer un port spécifique sous Linux, utilisez la commande ci-dessous

sudo fuser -k Port_Number/tcp

remplacez Port_Number par votre port occupé.


6
Cela tue en fait le processus qui a ouvert le port et non le port lui-même.
vinayc

16

Vous pouvez utiliser tcpkill(une partie du dsniffpackage) pour tuer la connexion qui se trouve sur le port dont vous avez besoin:

sudo tcpkill -9 port PORT_NUMBER

11
ça se bloque juste$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
Anentropic

16

En type de terminal:

netstat -anp|grep "port_number"

Il affichera les détails du port. Allez à la dernière colonne. Ce sera dans ce format. Par exemple: - PID / java

puis exécutez:

kill -9 PID. Worked on Centos5

Pour Mac:

lsof -n -i :'port-number' | grep LISTEN

Exemple de réponse:

java   4744 (PID)  test  364u  IP0 asdasdasda   0t0  TCP *:port-number (LISTEN)

puis exécutez:

kill -9 PID 

A travaillé sur Macbook


évidemment cela ne fonctionne pas si la colonne PID est vide pour ce port
Anentropic

1
... et cela se produit si vous n'avez pas la permission de voir le processus ... essayez sudo netstatde voir les PID :)
Anentropic

J'essayais de tuer un port sur une instance amazon ec2 via putty cli. Forever a dit qu'il n'y avait pas de processus en cours d'exécution mais que le port (4200 pour une application angulaire) était toujours ouvert.C'est la seule commande qui a fonctionné pour moi.
vtechmonkey

9

La "netstat --programs"commande vous donnera les informations sur le processus, en supposant que vous êtes root. Ensuite, vous devrez tuer le processus "offensant" qui pourrait bien redémarrer juste pour vous ennuyer :-).

Qu'essayez-vous réellement de réaliser ici? Les solutions varieront en fonction des processus détenant ces ports.


8

Pour vérifier tous les ports:

netstat -lnp

Pour fermer un port ouvert:

fuser -k port_no/tcp

Exemple:

fuser -k 8080/tcp

Dans les deux cas, vous pouvez utiliser la sudocommande si nécessaire.


7

Tuez le processus qui écoute le port en question. Je crois que netstat vous montre les identifiants de processus.


3
netstat -anp | grep <port> la dernière colonne a le processus
user1747935

2

Si vous voulez vraiment tuer un processus immédiatement, vous lui envoyez un signal KILL au lieu d'un signal TERM (ce dernier une demande d'arrêt, le premier prendra effet immédiatement sans aucun nettoyage). C'est facile à faire:

kill -KILL <pid>

Sachez cependant que selon le programme que vous arrêtez, son état peut être gravement corrompu lors de cette opération. Normalement, vous ne voulez envoyer un signal KILL que lorsque la terminaison normale ne fonctionne pas. Je me demande quel est le problème sous-jacent que vous essayez de résoudre et si tuer est la bonne solution.


0

Je pense que le seul moyen sera d'arrêter le processus qui a ouvert le port.



-14

Arrêter l'ordinateur tue toujours le processus pour moi.


l'arrêt d'une machine serveur est rare.
waqas

24
avez-vous obtenu votre badge "le plus drôle"?
jplandrain

Pas besoin d'éteindre votre ordinateur.
Anil Chahal

Meilleure idée de tous les temps 10/10
Valentin Roudge

11
contrairement à certaines des autres réponses, cela fonctionnera sûrement
Anentropic
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.