Раньше я ssh -L 10002:192.168.0.30:10002 192.168.1.135
устанавливал переадресацию портов, но теперь мне нужно его удалить.
Как мне это сделать?
ssh
port-forwarding
user16654
источник
источник
Warning: remote port forwarding failed for listen port
сообщение.Ответы:
Если вы используете Linux, вы можете убить процесс:
а затем использовать
Чтобы убить процесс.
Если команда kill не удалась, вы можете попробовать
источник
kill -9
пока не попробуетеkill
. Многие процессы будут иметь обработчики сигналов, которые очистят их использование ресурсов, аккуратно закроют соединения и другие задачи перед завершением работы. Если вы убьете с -9, процесс немедленно прекратит свою работу без очистки. Убийство без -9 будет работать большую часть времени.kill -9
без причины все равно что использовать дробовик, чтобы убить комара. :)pgrep ssh | xargs kill
. Не используйте-9
ничего на самом делеssh
команда, или что всеssh
команды, которые вы выполняете, могут быть уничтожены. Это вряд ли хорошее общее предположение.ssh
экземплярам на нескольких удаленных серверах, некоторые из которых без моего непосредственного активного участия. Например, режим Emacs Tramp открываетssh
соединение за кулисами, когда я посещаю удаленный буфер. Некоторые люди используют пользовательские файловые системы, которые делают нечто подобное. Это совсем не редкость. На самом деле, я бы предположил, что один пользователь, одинssh
экземпляр - это дополнительный случай меньшинства. Если это работает для вас, хорошо для вас, но это не очень хороший общий совет.При использовании мультиплексирования ssh уничтожение процесса ssh часто нежелательно (оно убивает все открытые соединения с этим хостом), и вы не можете легко получить доступ к escape, потому что «escape недоступно для мультиплексированных сеансов». Правильный путь - запустить аналог команды переадресации, которую вы хотите отменить, но добавить
-O cancel
. Например:Это отключит переадресацию этого порта без завершения сеанса. Опять же, это будет работать только в том случае, если для соединения с 192.168.1.135 используется мультиплексирование ssh .
источник
ssh -O exit 192.168.1.135
.Как отменить переадресованный порт в уже запущенном сеансе SSH:
-KL port
Вы должны увидеть это:
источник
Вы можете использовать "escape-ключ" (обычно ~), а затем C, чтобы получить cli для вашего соединения. Оттуда вы можете удалить туннели, не разрывая соединение.
источник
Вы можете войти в интерактивную консоль, набрав ~C(заглавная "C"). Это позволяет динамически добавлять и удалять переадресацию портов (среди прочего).
Эта последовательность должна появиться сразу после возврата каретки / перевода строки. Так что в сомнении, просто введите Enter~C(по порядку).
Если вы не видите символы, появляющиеся на консоли, вы делаете это правильно :)
Теперь вы должны увидеть
ssh>
подсказку.Чтобы удалить порт, просто введите,
-KL 10002
а затем Enter(где10002
находится ваш перенаправленный порт).Обратное - добавление нового форварда - можно сделать так (от начала до конца):
Enter~C
Enter
источник
~C escape not available to multiplexed sessions
. Если это так, см. Отличный ответ a3nm.