Bastante simple, sé que esto me ha pasado antes. No se pudo encontrar una buena respuesta en AU.
Estaba ejecutando una sesión ssh con puertos vinculados:
ssh -L 3000:<server_name>:22
Acabo de perder mi conexión. Cuando intento reconectarme usando el mismo comando, aparece el siguiente error:
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000
¿Cómo reinicio ssh en mi máquina para permitir que el puerto vuelva a estar vinculado? Restablecer la máquina local funciona.
networking
ssh
port-forwarding
kbuilds
fuente
fuente
lsof -ti:5901
devolverá un número de proceso, que luego pasarákill -9
sudo
si el proceso no está surgiendolsof
kill -9
menos que el programa no responda por completo . Eliminar un proceso con la señal n. ° 9 (SIGKILL) lo finaliza inmediatamente sin darle al proceso la posibilidad de vaciar los búferes, cerrar los mangos de archivos y los sockets, eliminar los archivos temporales, etc., todo lo cual el proceso puede hacer si lo usakill
(por defecto es SIGTERM) , seguido dekill -1
(SIGHUP; hangup) ykill -2
(SIGINT; qué envía Ctrl + C) si eso no funciona, y finalmentekill -9
si nada más funciona .Supongo que todavía tienes algo conectado al puerto local 3000.
Puedes encontrarlo con
y luego deséchelo. Por ejemplo en mi máquina:
identifica correctamente el proceso en espera y conectado en el puerto 5900 (servidor vnc).
Otro comando útil es
... es posible que deba ejecutarlos todos
sudo
si no posee el proceso que está abriendo el puerto.fuente
killall ssh
y hacer que muriera. Supongo que ese no es el casosudo
, eso es lo que me faltaba.Pude recrearlo y arreglarlo haciendo lo siguiente:
ps -ae
)sh
(kill <proc_number>
)Luego vuelva a abrir la conexión ssh
Alternativamente, he tenido éxito con:
En la terminal en la máquina local
fuente
Un contendiente más:
ss
se puede usar así:
ss -ltp | grep 3000
para encontrar el programa escuchando en el puerto 3000fuente