Muito simples, eu sei que isso já 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 redefinir o ssh na minha máquina para permitir que a porta seja ligada novamente? Redefinir a máquina local funciona.
networking
ssh
port-forwarding
kbuilds
fonte
fonte
lsof -ti:5901
retornará um número de processo, que você passará parakill -9
sudo
se o processo não estiver chegandolsof
kill -9
, a menos que o programa não responda completamente . A interrupção de um processo com o sinal # 9 (SIGKILL) o encerra imediatamente, sem dar ao processo a chance de liberar buffers, fechar identificadores e soquetes de arquivos, remover arquivos temporários etc., tudo o que o processo pode fazer se você usarkill
(o padrão é SIGTERM) , seguido porkill -1
(SIGHUP; hangup) ekill -2
(SIGINT; o que Ctrl + C envia) se isso não funcionar e, finalmente,kill -9
se nada mais funcionar .Suponho que você ainda tenha algo conectado à porta local 3000.
Você pode encontrá-lo com
e depois descarte-o. Por exemplo, na minha máquina:
identifica corretamente o processo em espera e conectado na porta 5900 (servidor vnc).
Outro comando útil é
... todos eles podem precisar ser executados
sudo
se você não possuir o processo que está abrindo a porta.fonte
killall ssh
e fazer com que ele morresse. Acho que não é o casosudo
- era o que estava faltando.Consegui recriá-lo e corrigi-lo, fazendo o seguinte:
ps -ae
)sh
(kill <proc_number>
)Em seguida, reabra a conexão ssh
Como alternativa, tive sucesso com:
No terminal na máquina local
fonte
mais um candidato:
ss
pode ser usado assim:
ss -ltp | grep 3000
para encontrar o programa escutando na porta 3000fonte