Scenariusz:
- Przy moim biurku laptop podłączony do sieci Ethernet i podłączony do zdalnego serwera przez SSH
- Chcesz przenieść się na drugą stronę biura z laptopem i przejść na Wi-Fi bez przerywania połączenia SSH
Próbowałem: najpierw podłączenie do Wi-Fi, a następnie rozłączenie sieci Ethernet; a także najpierw odłączając Ethernet, a następnie łącząc się z Wi-Fi. Żadne z tych podejść nie działa. Wypróbowano również podczas używania serwerów Ubuntu i OS X wraz z obiema opcjami systemu operacyjnego również dla klienta. Brak szczęścia.
Wydaje się, że potrzebuję jakiegoś sposobu, aby powiedzieć mojemu połączeniu SSH, że powinien zacząć korzystać z nowo podłączonego interfejsu sieciowego zamiast starego odłączonego interfejsu. Jakieś pomysły?
Zdaję sobie sprawę, że mógłbym cały dzień korzystać z Wi-Fi, ale nie chcę tego robić. Zdaję sobie również sprawę, że mogę po prostu pracować z sesji ekranowej na zdalnym serwerze, a następnie ponownie łączyć się z tą sesją ekranową po zmianie interfejsów, ale nie chcę tego robić. Na przykład, mogę przesyłać jakieś duże polecenie, takie jak zrzut bazy danych przez SSH, albo mogę mieć pliki otwarte przez SSHFS, lub po prostu chcę uniknąć uciążliwego ponownego połączenia
Odpowiedzi:
Podejrzewam, że to rozwiązanie nie będzie działać dla SSHFS itp., Ale możesz rzucić okiem na Mosh, który zapewnia obsługę roamingu przynajmniej dla samej powłoki.
źródło
Obawiam się, że nie możesz tego zrobić z definicji. Sesja SSH działa przez połączenie TCP, które jest zdefiniowane przez czterokrotną (adres źródłowy, port źródłowy, adres docelowy, port docelowy). Nie można przenieść istniejącego połączenia na inny adres na kliencie (poza tym, że system operacyjny zerwie połączenie, gdy interfejs się zepsuje).
NAT może skomplikować ten obraz, ale nie w żaden sposób, który ci pomoże.
źródło
Stary wątek, wiem, ale ze względu na kompletność, ponieważ szukałem tego samego ...
W systemie Windows 7 lub nowszym powinieneś po prostu móc wybrać zarówno kartę Wi-Fi, jak i Ethernet i wybrać „Połączenie mostkowe”. To da ci jeden adres IP dla obu, a teraz będziesz mógł odłączyć i ponownie podłączyć Ethernet do woli (biorąc pod uwagę ciągły zasięg Wi-Fi).
źródło
Zarządzam tym na dwa sposoby:
Rozpocznij sesję z serwera terminali w swoim centrum danych (RDP / Windows / etc)
LUB
Zainstaluj GNU screen lub tmux i uruchom je po zalogowaniu.
Wolę,
tmux
ponieważscreen
jest to dość stara szkoła, ale jeśli wolno ci tylko instalować obsługiwane pakiety,screen
znajduje się w repozytorium RHEL.LUB
Zrób jedno i drugie.
źródło
tmux
jest naprawdę przydatny. Uruchamianie zdalnych rzeczy wewnątrztmux
jest doskonałym nawykiem.Nie da się tego łatwo zrobić.
Mogę wskazać na wiele bardzo drogich aplikacji, które pozwalają zachować sesję telnet lub SSH podczas przechodzenia między adresami IP lub AP, a nawet przez dłuższy czas odłączenie sieci, ale w zasadzie osiągają to poprzez utworzenie zawsze otwartego serwera sesja poboczna dla komputera klienckiego, aby serwer nie wiedział, że połączenie jest inne lub zostało przerwane.
Podejrzewam, że można by coś takiego zakodować, ale wyobrażam sobie, że gdyby to było łatwe, moi klienci nie byliby zgwałceni z pięciocyfrowymi kosztami za utrzymanie otwartych połączeń terminali w bezprzewodowych skanerach ręcznych.
Chociaż natknąłem się na ekran, który twierdzi, że tworzy trwałe sesje SSH , które mogą faktycznie działać ... daj temu szansę.
źródło
Problemem jest prawdopodobnie to, że Twój źródłowy adres IP zmienia się po przełączeniu między przewodowym a Wi-Fi. Zapobiegnie to powrotom sesji ssh.
Poradziłem sobie z tym w systemie Linux, łącząc się z VPN i upewniając się, że połączenie VPN zawsze daje ten sam adres IP na twoje konto (nie jest trudne do wyegzekwowania, ale istnieje duże prawdopodobieństwo, że otrzymasz ten sam adres IP przez VPN już domyślnie, jeśli jest to dostępne, ale dla pewności lepiej je wymuszaj). Najczęściej używam vtun, ale openvpn też jest w porządku. Upewnij się, że twoje połączenia przechodzą przez VPN (poprawne routing, wypchnięte prefiksy, ...)
Mogłem być offline od kabla nawet przez 5 minut, a następnie połączyć się z Wi-Fi i nadal być w stanie pozostać w kontakcie ze wszystkimi moimi sesjami ssh. Trwający ping, mtr, htop, ... po prostu kontynuuj po przywróceniu VPN, jakby nic się nie stało.
źródło
Spróbuj być tylko w Wi-Fi, kiedy zaczynasz sesję ssh. Następnie podłącz Ethernet. To powinno pozwolić nowym połączeniom na przejście przez Ethernet, ale ustanowione połączenie pozostanie w Wi-Fi. Przynajmniej widziałem, że działa to tak z OSX, więc OS / sprzęt może się różnić.
źródło
Jestem pewien, że możesz to zrobić za pomocą głupiego hakowania za pomocą maszyn wirtualnych i tunelowania.
To nie zostało przetestowane, ale daj mi znać, czy to rzeczywiście działa.
ssh -L 10022:remote.server.example.com:22
ssh 192.168.56.3 -p 10022
daj znać czy działa.
źródło