У меня есть скрипт 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 подключаюсь к своему удаленному серверу, просто чтобы я мог набрать одну команду для настройки моего прокси и затем закрыть эту вкладку, потому что она мне больше не нужна.
Попробуйте сделать это вместо этого:
port=1234
remote=username@host
proxy off && ssh -fND $port $remote && proxy socks
Флаг -f
говорит ssh
перейти в фоновый режим, а -N
говорит не выполнять команды, только переадресовывать порты. Таким образом, вы можете продолжить работу в своем текущем терминале.