Я становлюсь поклонником mosh и все чаще использую его, когда у меня ненадежные ссылки Wi-Fi. Я пытаюсь выяснить, как построить туннель через сервер, который находится в демилитаризованной зоне (подключен к Интернету и сети с межсетевым экраном).
Мое текущее решение с ssh состоит в том, чтобы отредактировать .ssh / config, чтобы включить строки как:
Host server-behind-firewall
ProxyCommand ssh server-in-dmz nc %h %p
Я также выяснил, как я могу использовать ssh, чтобы сделать одну ногу и mosh другой:
ssh -t server-in-dmz mosh server-behind-firewall
Между server-in-dmz и server-behind-firewall я установил сеанс mosh, используя экран.
Но то, что я действительно хотел бы просто использовать mosh из конца в конец. Я предполагаю, что мне нужно было бы настроить server-in-dmz, чтобы прослушивать mosh-сервер. Но на справочной странице mosh-сервера написано: «Он закроется, если ни один клиент не связался с ним в течение 60 секунд».
Короче говоря, вопрос: как построить туннель mosh с несколькими хостами?
Ответы:
Вы можете попробовать камень , который является ретранслятором пакетов TCP и UDP. По сути это означает, что вы можете иметь следующую конфигурацию:
Вы <---> Камень на сервере в-dmz <---> сервер за брандмауэром
Другими словами, сервер-в-dmz прослушивает порт X для пакетов SSH, которые будут перенаправлены на сервер за межсетевым экраном, а также другой порт, порт Y, для пересылки пакетов UDP на порт 60000 на сервере за межсетевым экраном для мош-сервер.
Вам нужно будет подключиться к mosh с помощью следующей команды:
источник
Вместо перенаправления трафика на прикладном уровне, как предлагает @Hengjie, вы также можете использовать iptables (на сервере в dmz):
Затем вы подключаетесь с помощью
mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz
Замечания:
источник