Libérer un port TCP / IP?

146

netstat -tulnap me montre quels ports sont utilisés. Comment libérer un port sous Linux?

informatik01
la source

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.

uzi
la source
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é.

Anil Chahal
la source
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
AlexT
la source
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

utilisateur2332505
la source
é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.

paxdiablo
la source
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.

Vinayak
la source
7

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

Gleb
la source
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.

Paul de Vrieze
la source
0

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

Tilo Prütz
la source
-5

sudo killall -9 "nom du processus"

Zonxwedop
la source
-14

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

Zonxwedop
la source
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