Ssh -L (ошибка: привязка: адрес уже используется)

Довольно просто, я знаю, что это случалось со мной раньше. Не смог найти хорошего ответа на AU.

Я запускал сеанс ssh с привязанными портами:

ssh -L 3000:<server_name>:22

Я только что потерял связь. Когда я пытаюсь повторно подключиться с помощью той же команды, я получаю следующую ошибку:

bind: Address already in usechannel_setup_fwd_listener: cannot listen to port: 3000

Как мне сбросить ssh на моем компьютере, чтобы разрешить повторную привязку порта? Сброс настроек локального компьютера работает.

Не могли бы вы просто убить все, что использует этот порт?

 lsof -ti:5901 | xargs kill -9

lsof -ti:5901 чтобы найти все, что использует порт 5901.

Передайте все это в kill -9 чтобы убить все, что использовало порт 5901.

Замените на порт, который вы хотите открыть снова.

Я полагаю, у вас все еще есть что-то, подключенное к локальному порту 3000.

Вы можете найти его с помощью

netstat -tulpn | grep 3000 

а затем избавьтесь от него. Например, в моей машине:

[:~] % 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-servertcp6       0      0 :::5900                 :::*                    LISTEN      2547/vino-server

правильно идентифицирует процесс, ожидающий и подключенный к порту 5900 (сервер vnc).

Еще одна полезная команда - это

fuser 3000/tcp 

...возможно, все они должны быть запущены с sudo если вы не являетесь владельцем процесса, который открывает порт.

Я смог воссоздать и исправить это, выполнив следующее:

  • Откройте что-нибудь, в чем будут перечислены ваши процессы (ps -ae)
  • Завершите процесс, вызванный sh (kill <proc_number>)

Затем снова откройте ssh-соединение

В качестве альтернативы, я добился успеха с:

killall ssh

В терминале на локальном компьютере

еще один претендент: ss

его можно использовать следующим образом: ss -ltp | grep 3000 чтобы найти программу, прослушивающую порт 3000