Сценарий:
- На моем столе с ноутбуком подключен к Ethernet и подключен к удаленному серверу через SSH
- Хотите переехать в другую сторону офиса с ноутбуком и перейти на WiFi, не прерывая SSH-соединение
Я пробовал: сначала подключиться к WiFi, затем отключить Ethernet; а также сначала отключение Ethernet, затем подключение к WiFi. Ни один из подходов не работает. Также пробовал при использовании серверов Ubuntu и OS X вместе с обоими вариантами ОС, а также для клиента. Неудачно.
Похоже, мне нужен какой-то способ сообщить моему SSH-соединению, что оно должно начать использовать вновь подключенный сетевой интерфейс вместо старого отключенного интерфейса. Есть идеи?
Я понимаю, что могу просто оставаться на Wi-Fi целый день, но я не хочу этого делать. Я также понимаю, что могу просто работать в рамках сеанса экрана на удаленном сервере и затем повторно подключаться к этому сеансу экрана после изменения интерфейсов, но я также не хочу этого делать. Например, я мог бы передать какую-то большую команду, такую как дамп базы данных по SSH, или у меня могут быть файлы, открытые через SSHFS, или я просто хотел бы избежать неудобств повторного подключения
Ответы:
Я подозреваю, что это решение не будет работать для SSHFS и т. Д., Но вы можете взглянуть на Mosh, который обеспечивает поддержку роуминга по крайней мере для самой оболочки.
источник
Боюсь, вы не можете сделать это по определению. Сеанс SSH выполняется по TCP-соединению, которое определяется четырьмя кортежами (адрес источника, порт источника, адрес назначения, порт назначения). Вы не можете перенести существующее соединение на другой адрес на клиенте (кроме того факта, что ОС разорвет соединение, когда интерфейс выйдет из строя).
NAT может усложнить эту картину, но никак не поможет вам.
источник
Старый поток, я знаю, но ради полноты, так как я искал то же самое ...
В Windows 7 или новее вы должны просто иметь возможность выбрать адаптер Wi-Fi и адаптер Ethernet и выбрать «Мостовое соединение». Это даст вам один IP-адрес для обоих, и теперь вы сможете отключить и повторно подключить Ethernet по желанию (при условии постоянного покрытия Wi-Fi).
источник
Я справляюсь с этим двумя способами:
Начните сеанс с сервера терминалов в вашем центре данных (RDP / Windows / и т. Д.)
ИЛИ
Установите экран GNU или tmux и запустите их после входа в систему.
Я предпочитаю,
tmux
потому чтоscreen
это довольно старая школа, но если вам разрешено устанавливать только поддерживаемые пакеты,screen
это в репозитории RHEL.ИЛИ
Делай оба.
источник
tmux
действительно удобно. Запуск удаленных вещей внутриtmux
- отличная привычка.Это не может быть сделано легко.
Я могу указать вам на ряд очень дорогих приложений, которые позволяют вам поддерживать сеанс telnet или SSH при перемещении между IP-адресами или точками доступа или даже в течение периодов длительного отключения сети, но они в основном достигают этого, создавая всегда открытый сервер -сессионный сеанс для клиентского компьютера, поэтому сервер не знает, что соединение отличается или разорвано.
Я полагаю, что вы могли бы написать такую вещь, но я полагаю, что если бы это было легко сделать, мои клиенты не получили бы изнасилование с пятизначными затратами на поддержание открытых терминальных подключений на беспроводных портативных сканерах.
Тем не менее, я наткнулся на экран, который утверждает, что создает постоянные сессии SSH , которые могут на самом деле работать ... дать ему шанс.
источник
Проблема, вероятно, в том, что ваш IP-адрес источника изменяется при переключении между кабельным и Wi-Fi. Это предотвратит возврат сессий ssh.
Я справился с этим в linux, подключившись через vpn и убедившись, что соединение vpn всегда дает один и тот же ip вашей учетной записи (не сложно применить, но высока вероятность того, что вы все равно получите по умолчанию тот же ip через vpn, если он доступно, но лучше придерживаться этого, чтобы быть уверенным). Я в основном использую vtun, но openvpn тоже хорошо. Убедитесь, что ваши соединения проходят через vpn (правильная маршрутизация, заданные префиксы, ...)
Я был в состоянии быть в автономном режиме от кабеля даже в течение 5 минут, а затем подключиться к Wi-Fi и по-прежнему могу оставаться на связи со всеми моими сессиями SSH. Постоянный ping, mtr, htop, ... просто продолжайте, когда vpn восстанавливается, как будто ничего не произошло.
источник
Попробуйте быть только на Wi-Fi при первом запуске сеанса SSH. Затем подключите Ethernet. Это должно позволить новым соединениям проходить через Ethernet, но установленное соединение останется на Wi-Fi. По крайней мере, я видел, как это работает с OSX, поэтому ОС / оборудование может отличаться.
источник
Я почти уверен, что вы можете сделать это с каким-то глупым количеством хаков с виртуальными машинами и туннелированием.
Это не проверено, но дайте мне знать, если это действительно работает.
ssh -L 10022:remote.server.example.com:22
ssh 192.168.56.3 -p 10022
дайте мне знать, если это работает.
источник