web-dev-qa-db-fra.com

Libérer un port TCP / IP?

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

127
bapi

Comme les autres l'ont dit, vous devrez tuer tous les processus qui écoutent sur ce port. Le moyen le plus simple consiste à utiliser la commande fuser (1). Par exemple, pour voir tous les processus écouter les demandes http sur le port 80 (exécuter en tant que root ou utiliser Sudo):

# fuser 80/tcp

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

196
uzi

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é.

64
Anil Chahal

Vous pouvez utiliser tcpkill (composant du package dsniff) pour supprimer la connexion installée sur le port dont vous avez besoin:

Sudo tcpkill -9 port PORT_NUMBER
13
AlexT

La commande "netstat --programs" vous donnera les informations sur le processus, en supposant que vous soyez root. Ensuite, vous devrez arrêter le processus "fautif" qui risque de redémarrer juste pour vous ennuyer :-).

Qu'est-ce que vous essayez réellement d'atteindre ici? Les solutions varieront en fonction des processus contenant ces ports.

9
paxdiablo

En type de terminal:

netstat -anp|grep "port_number"

Il montrera les détails du port. Aller à 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

8
user2332505

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

7
Gleb

Si vous voulez vraiment tuer immédiatement un processus, vous lui envoyez un signal KILL au lieu d'un signal TERM (cette dernière demande l'arrêt, le premier prend effet immédiatement sans nettoyage). C'est facile à faire:

kill -KILL <pid>

Sachez cependant que, selon le programme que vous arrêtez, son état peut être gravement corrompu en le faisant. 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.

2
Paul de Vrieze

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

0
Tilo Prütz

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 commande Sudo si nécessaire.

0
Vinayak