Довольно просто, я знаю, что это случилось со мной раньше. Не удалось найти хороший ответ на AU.
Я запустил сессию SSH с привязанными портами:
ssh -L 3000:<server_name>:22
Я только что потерял связь. Когда я пытаюсь восстановить соединение с помощью той же команды, я получаю следующую ошибку:
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000
Как я могу сбросить SSH на моей машине, чтобы разрешить привязку порта снова? Сброс локальной машины работает.
networking
ssh
port-forwarding
kbuilds
источник
источник
lsof -ti:5901
вернет номер процесса, который вы затем передадитеkill -9
sudo
если процесс не идетlsof
kill -9
если программа полностью не отвечает. Убийство процесса с сигналом # 9 (SIGKILL) обрывается сразу , не давая процессу возможность смыва буферов, близкие дескрипторы файлов и сокеты, удалить временные файлы и т.д., все из которых процесс может сделать , если вы используетеkill
( по умолчанию SIGTERM) , затемkill -1
(SIGHUP; зависание) иkill -2
(SIGINT; что посылает Ctrl + C), если это не работает, и, наконец,kill -9
если ничего не работает .Я полагаю, у вас еще есть что-то, связанное с локальным портом 3000.
Вы можете найти это с
а затем избавиться от него. Например в моей машине:
правильно определяет процесс, ожидающий и подключенный через порт 5900 (vnc server).
Еще одна полезная команда
... все они могут быть запущены,
sudo
если вы не являетесь владельцем процесса, открывающего порт.источник
killall ssh
и заставить его умереть. Думаю, это не такsudo
- это то, что мне не хватало.Я смог воссоздать и исправить это, выполнив следующие действия:
ps -ae
)sh
(kill <proc_number>
)Затем снова откройте соединение ssh
Кроме того, я имел успех с:
В терминале на локальной машине
источник
еще один претендент:
ss
это можно использовать так:
ss -ltp | grep 3000
найти программу, прослушивающую порт 3000источник