ネットワークインターフェース接続を切り替えている間、ssh接続を維持し続ける


13

シナリオ:

  1. デスクでラップトップをイーサネットに接続し、SSH経由でリモートサーバーに接続している
  2. ラップトップでオフィスの反対側に移動し、SSH接続を中断せずにWiFiに変更したい

私は試しました:最初にWiFiに接続し、次にイーサネットを切断します。また、最初にイーサネットを切断してからWiFiに接続します。どちらのアプローチも機能しません。UbuntuおよびOS Xサーバーとクライアントの両方のOSオプションを使用する場合にも試してみました。運がありません。

古い切断されたインターフェースの代わりに、新しく接続されたネットワークインターフェースの使用を開始するようにSSH接続に伝える何らかの方法が必要なようです。何か案は?

私は1日中Wi-Fiにとどまることができることに気付きましたが、それはしたくありません。また、リモートサーバー上のスクリーンセッション内から作業し、インターフェイスを変更した後にそのスクリーンセッションに再接続できることもわかりますが、それもしたくありません。たとえば、SSHを介したデータベースダンプのような大きなコマンドをパイピングしたり、SSHFSを介してファイルを開いたり、再接続の煩わしさを避けたい場合があります。


3
両方の方法で同じIPアドレスを取得する場合、これは機能するはずです。そうでなければ、それはほとんど不可能です。
アランカレー

@AlanCurryクライアントとサーバーの両方がMPTCPをサポートしている場合、それは可能です。しかし、MPTCPサポートはまだ非常に限られているため、そうなる可能性は低いです。
カスペルド

回答:


4

このソリューションはSSHFSなどでは機能しないと思われますが、少なくともシェル自体のローミングサポートを提供するMoshご覧ください。


これは非常に優れたソリューションのように見えますが、残念ながらサーバーにもインストールする必要があります。これは、許可のために常に可能とは限りません。
user000001

4

定義上、これを行うことはできません。SSHセッションは、4つのタプル(ソースアドレス、ソースポート、宛先アドレス、宛先ポート)によって定義されるTCP接続で実行されます。既存の接続をクライアント上の別のアドレスにシフトすることはできません(OSがインターフェースがダウンすると接続を切断するという事実は別として)。

NATはこの状況を複雑にする可能性がありますが、あなたを助ける方法はありません。


はい。ただし、アプリケーションは、ソケットが閉じたことを認識すると再接続できます。SSHプロトコルには、古いセッションを再開するための規定がありますか?
アジェイブラフマクシャトリヤ

@AjayBrahmakshatriya SSHにはセッションを再開するツールがありません
Ferrybig

2

古いスレッド、私は知っていますが、同じことを探していたので完全性のために...

Windows 7以降では、wifiアダプターとイーサネットアダプターの両方を選択し、「ブリッジ接続」を選択するだけで済みます。これにより、両方に単一のIPアドレスが与えられ、イーサネットを自由に切断および再接続できるようになります(連続したwifiカバレッジが与えられた場合)。


良いアイデア、私はこれを試さなければなりません。
ダグ

これを行う場合、両方のネットワークに一度に設定することはできません。設定によっては、ネットワークのエリアの全員をキックします(ソース:これは私に起こりました)
Ferrybig

2

これは2つの方法で管理します。

データセンターのターミナルサーバー(RDP / Windows / etc)からセッションを開始します

または

GNU またはをインストールし、ログイン後に起動します。

かなり古いtmuxので好んscreenでいますが、サポートされているパッケージのみをインストールできる場合screenは、RHELリポジトリにあります。

または

両方してください。


tmux本当に便利です。内部でリモートのものを実行tmuxすることは、入るべき優れた習慣です。

はい私は同意する。複数ウィンドウ機能は素晴らしいです。
ダグ

1

簡単にはできません。

IPまたはAP間を移動するとき、または長期間のネットワーク切断の期間中にTelnetまたはSSHセッションを維持できる非常に高価なアプリケーションをいくつか指摘できますが、基本的には常にオープンなサーバーを作成することでこれを実現します-クライアントマシンのサイドセッション。これにより、サーバーは接続の違いや切断を認識しません。

私はあなたがそのようなことをコーディングできると思いますが、もしそれが簡単なら、私のクライアントはワイヤレスハンドヘルドスキャナーで端末接続を開いたままにするための5桁のコストでレイプされることはないと思います。

ただし、永続的なSSHセッションを作成すると主張する画面を偶然見つけました。


1

問題は、ケーブル接続とWi-Fiを切り替えると、おそらくソースIPアドレスが変わることです。これにより、sshセッションが復帰しなくなります。

Linuxでこれを処理するには、vpnを介して接続し、vpn接続が常に同じIPをアカウントに提供するようにします(強制するのは難しくありませんが、とにかくデフォルトでvpnを介して同じipをすでに受信する可能性が高いです)利用可能ですが、確実に実施することをお勧めします)。私はほとんどvtunを使用していますが、openvpnも大丈夫です。接続がVPNを経由していることを確認します(正しいルーティング、プッシュされたプレフィックスなど)。

5分間もケーブルからオフラインになってから、wifiに接続しても、すべてのsshセッションに接続したままにすることができました。進行中のping、mtr、htop、... vpnが復元されたら、何も起こらなかったように続行します。


0

最初にsshセッションを開始するときは、wifiのみで試してください。次に、イーサネットを接続します。これにより、新しい接続がイーサネットを経由できるようになりますが、確立された接続はWiFi上に残ります。少なくともOSXでこのように動作するのを見てきましたので、OS /ハードウェアは異なる場合があります。


0

VMやトンネリングを使ったばかげたハッキン​​グでこれを実現できると確信しています。

これはテストされていませんが、実際に機能するかどうかを教えてください。

  1. 2つのインターフェース、1つのブリッジアダプター(Wi-Fiへ)、および1つのホストのみのネットワークを持つゲストVMを作成します
  2. VMには妻へのブリッジアダプター用に192.168.0.25があり、ホストのみへの192.168.56.5があるとします。
  3. vm内で、リモート側のポート22へのトンネルを使用してssh接続を作成します ssh -L 10022:remote.server.example.com:22
  4. トンネルを介して接続します。 ssh 192.168.56.3 -p 10022
  5. Wi-Fi接続が切断されたら、VMのアダプターをイーサネットアダプターに変更します。
  6. うまくいけば、ルーティングテーブルが壊れたり、めちゃくちゃにならない

動作するかどうか教えてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.