TeamViewerをFOSSソリューションに置き換えたいです。一部のリモートコンピュータをサポートする必要があります。次のように、中間サーバーを使用して2台のコンピュータ間で動作するSSHトンネルを設定しました。
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
現在、このSSHトンネルが実行されています。
次に、SSHトンネルを使って「Kubuntu_laptop」から「Kubuntu_desktop」のデスクトップに接続したいと思います。
この足の接続について:
Debian_Server<--nat_fw<--Kubuntu_desktop
次のように設定されます。
autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] -p 22
既存の監視ポート(5234)またはリモート(-R)ポート番号(この場合は1234)を変更できません。この既存のSSH接続を介してvncトンネルを使用できますか?修正する:答えは次のとおりですno
。ここで説明されているように、vncで使用する新しいSSHトンネルを設定する必要があります。
この足の接続について:
Kubuntu_laptop--->nat_fw--->Debian_Server
任意のSSHパラメータを使用できます。
ルーター/ファイアウォールのポートを開けません。
誰かがx11vncサーバーをお勧めし、それでテストしています。デスクトップで実行され、ポート5900でリッスンします。ただし、x11vncを起動するときにコマンドラインオプションを使用しなかったため、正しく設定されていない可能性があります。
vncは既存のSSH接続を介して機能しますか?ポート 5900 は定義されていません。上記のように、-Rオプションではポート番号を変更できません。
これを機能させる方法について多くの質問がありますが、その1つは、vncが既存のポート(上記の例では-R 1234)でリッスンできるかどうかです。それでは、今のようにまだそのボックスにSSH経由でアクセスできますか?
これが私が今まで試したことです:
リモートデスクトップ(x11vncサーバーがインストールされている場所)から:
tester@Kubuntu_desktop:~> autossh -M 5234 -i ~/.ssh/my_id_rsa -fNR 1234:localhost:5901 [email protected]
x11vncサーバーがポート5901で実行されていることを確認してください。
tester@Kubuntu_desktop:~> x11vnc -autoport 5901
私のラップトップから:
sudo ssh -NL 5901:localhost:1234 -i ~/.ssh/admin_id_rsa [email protected]
ローカルvncクライアントをlocalhostポート5901に接続する
Kubuntu_laptop で KRDC を開き (vnc) に接続します。
localhost:5901
接続に失敗しました。 - server not found
。
答え1
現在、ラップトップとサーバーの間に基本的なSSH接続があるようです。
Kubuntu_laptop--->nat_fw--->Debian_Server
機能するようにSSH接続のパラメータを変更します。
-fNL [localIP:]localPort:remoteIP:remotePort
たとえば、
-fNL 5900:localhost:1234
ノートブックがデフォルトのポート5900でVNCを使用している場合は、ノートブックにvncをlocalhostとして指示し、ポート5900のVNCトラフィックをポート1234のサーバーに送信します。
次に、サーバー側ポート1234に到着するトラフィックをキャプチャしてデスクトップに転送する必要があります。
Debian_Server<--nat_fw<--Kubuntu_desktop
以下を含むデスクトップSSH接続のパラメータを変更します。
-fNR [remoteIP:]remotePort:localIP:localPort
たとえば、
-fNR 1234:localhost:5900
サーバーローカルホストのポート1234に送信されたすべてのトラフィックは、デスクトップとVNCサーバーが待機するポート5900に移動します。
ポート5900を使用しているプロトコルに適したプロトコルに変更してください。 5900が使用されている可能性があるため、RDPの場合は3389、VNCの場合は5901です。また、サーバーで使用するポート1234をランダムに選択しました。
*更新された質問に関するいくつかの注意:
- SSH のデフォルトポートは 22 なので、
-p 22
デフォルトポートをオーバーライドして 22 に設定するので、重複します。 localPort:remoteIP:remotePort
これらの設定は、sshがトンネルに使用するポートとは何の関係もないようです。クライアントで-pに上書きし、sshサーバーのポートを上書きしない限り、まだ22です。したがって、前述のすべてのsshコマンドはポート22を使用します。これは、受信および確立されたネットワーク接続を見ると確認できます。ファイアウォールで別のポートを開く必要はありません。前のコマンドは正しいです。- アップデートに追加した内容に応じて、デスクトップコマンドは次のようになります。
autossh -M 5234 -fNR 1234:localhost:5900 [email protected]
- 申し訳ありません。 VNCクライアントの推奨事項はありません。これについては別途質問をしていただきたいと思いますが、意見の問題なので反対表が出てきそうです。
答え2
説明されたメカニズムを確認し、私に適しています。唯一の違いは、127.0.0.1 :: PortをVNCクライアントパラメータとして使用することです。なぜなら:NはXウィンドウ表示番号Nを参照しているので、明示的なポートを使用するには二重コロンを区切り文字として使用する必要があります。