web-dev-qa-db-ja.com

SSHトンネル経由のVNC:チャネル3:オープンに失敗しました:接続に失敗しました:ホストへのルートがありません

以前は、C経由のSSHトンネルを使用してVNC経由でAからシステムBに接続していました。

私は次のことをします:

  1. Bでは、vncserverを起動します。

    vncserver
    

    そして、私が:12を取得したとしましょう

  2. Aで、sshトンネルを開きます。

    ssh -v -C -L 5912:B:5912 user@C
    
  3. 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サーバーは私にこの値をはるかに超えるポート番号を割り当てていました。

4
simona

どうやらシステムマネージャーはアクセス可能なvncポート範囲5900-5910を設定しましたが、VNCサーバーはこの値をはるかに超えるポート番号を私に割り当てていました。

0
simona

ポートがそのポート範囲外にある理由を簡単に更新します-vncserverが起動すると、割り当てられたポート番号は5900 + Nになります。ここで、Nは返されるVNCサーバー番号です。例:

vncserver
New 'localhost:1' desktop is localhost:1

その場合、ポートは5901になります。この例では、サーバーは5912を使用していますが、これはポート範囲外です。

1
Byob

編集された質問とByobの回答が示すように、実際にVNCサーバーがファイアウォールの許可範囲を超える高いポート番号を割り当てる可能性があります。

ただし、ホストマシンやルーターのルーティングテーブルのような場所にルーティングエラーが実際に発生している可能性があります。多分。 Googleグループ に関連する会話があります:

ターゲットワークステーションのルーティングは、2つのシステム間で異なります(...)。障害(...)はルーターまたはワークステーションのいずれかにあり、省略(ルーティングテーブルのルートを失った)または重ね合わせ(に誤ったルートを追加した)のいずれかの障害になります。ルーティングテーブル)。

また、Bが実際に到達可能であることを確認してください。

0
Wtower