
У меня есть скрипт bash, в котором я автоматически настраиваю параметры прокси. Я создал несколько псевдонимов в файле .bash_aliases
. Теперь есть одна команда, с помощью которой я подключаюсь по ssh к своему удаленному серверу и делаю динамическую переадресацию портов и по сути создаю прокси-сервер socks. Поэтому мне нужно настроить параметры прокси соответствующим образом.
Команда выглядит так:
proxy off && ssh -D <port> <username>@<hostaddress>
Я создал псевдоним для указанной выше команды, и когда я ввожу псевдоним в терминале, я успешно подключаюсь к своему удаленному серверу. Однако после этого мне нужно запустить еще одну команду в новом окне терминала, чтобы настроить мой недавно созданный прокси-сервер socks. По сути, мне просто нужно запустить:
proxy socks #It configures my laptop to use the socks proxy
Я не могу сделать это в том же окне терминала и просто &&
после команды ssh, потому что это будет означать, что я пытаюсь выполнить команду на удаленном сервере. Я хочу запустить эту команду на своем ноутбуке.
Есть ли способ запустить вторую команду в новом окне терминала в одной строке, как мы передаем по конвейеру или и разные команды? Действительно неэффективно открывать новую вкладку в терминале каждый раз, когда я подключаюсь по ssh к своему удаленному серверу, просто чтобы я мог ввести одну команду для настройки прокси-сервера, а затем закрыть эту вкладку, потому что она мне больше не нужна.
решение1
Попробуйте сделать так:
port=1234
remote=username@host
proxy off && ssh -fND $port $remote && proxy socks
Флаг -f
говорит ssh
перейти в фоновый режим, а -N
говорит не выполнять команды, а просто перенаправлять порты. Таким образом, вы можете продолжать работать в текущем терминале.