以前は、C経由のSSHトンネルを使用してVNC経由でAからシステムBに接続していました。
私は次のことをします:
Bでは、vncserverを起動します。
vncserver
そして、私が:12を取得したとしましょう
Aで、sshトンネルを開きます。
ssh -v -C -L 5912:B:5912 user@C
Aでvncクライアントを起動します。
vinagre localhost:12
しかし、これはもう機能しません。ssh-tunnelに関連付けられたターミナルでvinagreを開始すると、次のようになります。
channel 3: open failed: connect failed: No route to Host
先週、システムに問題があったことは知っていますが、何が変わったのかわかりません(私はコンピューター管理者ではありません)。IPアドレスが変更された可能性がありますが、削除しました
~/.ssh/know_hosts
だから問題を避けるために。助けやヒントをいただければ幸いです
実行して、self-vncが機能することを確認しました
vncviewer localhost:12
システムB上
私はいくつかのテストを行いましたが、別のユーザーが開いているセッション(:6などの別の番号)をトンネリングして接続しようとすると、正常に接続できることがわかりました。もちろん、ログインできないという意味です。正しいパスワードを持っていませんが、少なくともvncクライアントがパスワードの入力を求めているため、さらに「ホストへのルートがありません」というメッセージが表示されません。それはどういう意味ですか?このvncは、一部のポートでのみ機能していないようです。
どうやらシステムマネージャーはアクセス可能なvncポート範囲5900-5910を設定しましたが、VNCサーバーは私にこの値をはるかに超えるポート番号を割り当てていました。
どうやらシステムマネージャーはアクセス可能なvncポート範囲5900-5910を設定しましたが、VNCサーバーはこの値をはるかに超えるポート番号を私に割り当てていました。
ポートがそのポート範囲外にある理由を簡単に更新します-vncserverが起動すると、割り当てられたポート番号は5900 + Nになります。ここで、Nは返されるVNCサーバー番号です。例:
vncserver
New 'localhost:1' desktop is localhost:1
その場合、ポートは5901になります。この例では、サーバーは5912を使用していますが、これはポート範囲外です。
編集された質問とByobの回答が示すように、実際にVNCサーバーがファイアウォールの許可範囲を超える高いポート番号を割り当てる可能性があります。
ただし、ホストマシンやルーターのルーティングテーブルのような場所にルーティングエラーが実際に発生している可能性があります。多分。 Googleグループ に関連する会話があります:
ターゲットワークステーションのルーティングは、2つのシステム間で異なります(...)。障害(...)はルーターまたはワークステーションのいずれかにあり、省略(ルーティングテーブルのルートを失った)または重ね合わせ(に誤ったルートを追加した)のいずれかの障害になります。ルーティングテーブル)。
また、B
が実際に到達可能であることを確認してください。