79 votes

ssh -L (error : bind : Adresse déjà utilisée)

C'est assez simple, je sais que cela m'est déjà arrivé. Je n'ai pas trouvé de bonne réponse sur AU.

J'exécutais une session ssh avec des ports liés :

ssh -L 3000:<server_name>:22

Je viens de perdre ma connexion. Lorsque j'essaie de me reconnecter en utilisant la même commande, j'obtiens l'erreur suivante :

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000

Comment réinitialiser ssh sur ma machine pour permettre au port d'être à nouveau lié ? La réinitialisation de la machine locale fonctionne.

105voto

user974407 Points 1946

Tu ne pourrais pas simplement tuer ce qui utilise ce port ?

 lsof -ti:5901 | xargs kill -9

lsof -ti:5901 pour trouver ce qui utilise le port 5901 .

Passez le tout à kill -9 pour tuer ce qui utilisait le port 5901 .

Remplacez par le port que vous voulez ouvrir à nouveau.

13voto

Rmano Points 30303

Je suppose que vous avez encore quelque chose de connecté au port local 3000.

Vous pouvez le trouver avec

netstat -tulpn | grep 3000 

et de s'en débarrasser. Par exemple, dans ma machine :

[:~] % netstat -tulpn | grep 5900
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      2547/vino-server
tcp6       0      0 :::5900                 :::*                    LISTEN      2547/vino-server

identifie correctement le processus en attente et connecté sur le port 5900 (serveur vnc).

Une autre commande utile est

fuser 3000/tcp 

...tous peuvent avoir besoin d'être exécutés avec sudo si vous ne possédez pas le processus qui ouvre le port.

5voto

kbuilds Points 1355

J'ai réussi à le recréer et à le corriger en procédant comme suit :

  • Ouvrez un logiciel qui répertorie vos processus ( ps -ae )
  • Arrêtez le processus appelé sh ( kill <proc_number> )

Puis rouvrez la connexion ssh

Alternativement, j'ai eu du succès avec :

killall ssh

Dans le terminal de la machine locale

2voto

John Points 4635

Un prétendant de plus : ss

il peut être utilisé comme ceci : ss -ltp | grep 3000 pour trouver le programme qui écoute sur le port 3000

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X