Раніше я ssh -L 10002:192.168.0.30:10002 192.168.1.135встановлював переадресацію портів, але тепер мені потрібно її видалити.
Як це зробити?
Раніше я ssh -L 10002:192.168.0.30:10002 192.168.1.135встановлював переадресацію портів, але тепер мені потрібно її видалити.
Як це зробити?
Відповіді:
Якщо ви використовуєте Linux, ви можете вбити процес:
ps aux | grep ssh
а потім використовувати
kill <id>
Щоб вбити процес.
Якщо команда kill не є успішною, ви можете спробувати
kill -9 <id>
kill -9до того моменту, як тільки ви спробували kill. Багато процесів матимуть обробники сигналів, які очистять їх використання ресурсів, чисто закриють з'єднання та інші завдання перед відключенням. Якщо ви вбиєте з -9, процес негайно вмирає, не роблячи прибирання. Вбивство без -9 буде працювати більшу частину часу.
kill -9без причин - це як використовувати рушницю для вбивства комара. :)
pgrep ssh | xargs kill. Не використовуйте -9для нічого насправді
sshкоманда, або що всі sshкоманди, які ви виконуєте, добре вбивати. Це навряд чи хороше загальне припущення.
sshпримірників на декількох віддалених серверах, деякі з них без мого прямого участі. Наприклад, режим Emacs Tramp відкриває sshз'єднання за кадром, коли я відвідую віддалений буфер. Деякі користуються файловими системами користувачів, які роблять щось подібне. Це зовсім не рідкість. Насправді я вважаю, що один користувач, один sshекземпляр, є випадком використання бахроми меншості. Якщо це працює для вас, добре для вас, але загальна порада це не добре.
Під час використання ssh мультиплексування вбивати процес ssh часто небажано (це вбиває всі відкриті зв’язки з цим хостом), і ви не можете легко отримати доступ до втечі, оскільки "втеча недоступна для мультиплексованих сесій". Правильний спосіб - це запустити аналог команди переадресації, яку потрібно скасувати, але додавши -O cancel. Наприклад:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Це відключить переадресацію цього порту, не припиняючи сеанс. Знову ж, це буде працювати лише в тому випадку, якщо для з'єднання до 192.168.1.135 використовується ssh мультиплексування .
ssh -O exit 192.168.1.135.
Як скасувати пересланий порт у вже запущеному сеансі SSH:
-KL portВи повинні побачити це:
ssh> -KL 10002
Canceled forwarding.
Ви можете скористатися "клавішею втечі" (як правило ~), а потім C, щоб отримати кліп до свого з'єднання. Ви можете видалити тунелі, не знімаючи з'єднання.
Ви можете ввести інтерактивну консоль, ввівши ~C(з великої літери "C"). Це дозволяє динамічно додавати та видаляти переадресацію портів (серед кількох інших речей).
Ця послідовність повинна відбуватися відразу після повернення / нової лінії перевезення. Тож сумнівайтеся, просто введіть Enter~C(послідовно).
Якщо ви не бачите, як символи з’являються на консолі, ви все робите правильно :)
Тепер ви повинні побачити ssh>підказку.
Щоб видалити порт, просто введіть, -KL 10002а за ним Enter(де 10002ваш перенаправлений порт).
Зворотне - додавання нового вперед - можна зробити так (від початку до кінця):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions. Якщо це так, дивіться відмінну відповідь a3nm.
Warning: remote port forwarding failed for listen portповідомлення.