ssh -L (erro: bind: endereço já em uso)

29

Muito simples, eu sei que isso aconteceu comigo antes. Não foi possível encontrar uma boa resposta na AU.

Eu estava executando uma sessão ssh com portas ligadas:

ssh -L 3000:<server_name>:22

Acabei de perder minha conexão. Quando tento reconectar usando o mesmo comando, recebo o seguinte erro:

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

Como faço para redefinir o ssh na minha máquina para permitir que a porta seja ligada novamente? Redefinir os trabalhos da máquina local.

    
por kbuilds 14.04.2014 / 22:31

4 respostas

41

Você não pode simplesmente matar o que estiver usando essa porta?

 lsof -ti:5901 | xargs kill -9

lsof -ti:5901 para descobrir o que está usando a porta 5901 .

Passe a coisa toda para kill -9 para matar o que estava usando a porta 5901 .

Substitua pela porta que você deseja abrir novamente.

    
por user974407 07.09.2015 / 16:12
10

Suponho que você ainda tem algo conectado à porta local 3000.

Você pode encontrá-lo com

netstat -tulpn | grep 3000 

e, em seguida, descarte-o. Por exemplo, na minha máquina:

[:~] % 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

identifica corretamente o processo em espera e conectado na porta 5900 (servidor vnc).

Outro comando útil é

fuser 3000/tcp 

... todos eles podem precisar ser executados com sudo se você não possuir o processo que está abrindo a porta.

    
por Rmano 14.04.2014 / 22:42
5

Consegui recriar e corrigir o problema fazendo o seguinte:

  • Abra algo que listará seus processos ( ps -ae )
  • Mate o processo chamado sh ( kill <proc_number> )

Em seguida, reabra a conexão ssh

Como alternativa, tive sucesso com:

killall ssh

No terminal na máquina local

    
por kbuilds 14.05.2014 / 19:34
2

mais um concorrente: ss

pode ser usado assim: ss -ltp | grep 3000 para encontrar o programa escutando na porta 3000

    
O
por mnagel 03.06.2016 / 13:19