web-dev-qa-db-ja.com

SSH -L接続は成功しましたが、localhostポート転送が機能していません「チャンネル3:オープンに失敗しました:接続に失敗しました:接続が拒否されました」

私のラボではサーバーでRStudioを実行しています。数週間前、私のいとこの家から、私はサーバーに正常にsshし、ローカルのFirefoxブラウザーからサーバー側のRStudioをプルアップしました。現在、自宅から(自分のルーターを介して)サーバーRStudioにアクセスしようとすると、機能しません。トラブルシューティングの助けが必要で、ルーターに何らかの問題があると推測しています。 Mac OSX 10.6.8を実行しています。大学のサーバーが何を実行しているのかわかりませんが、サーバー側の問題だとは思いません。

従兄弟の家で初めてやったときの仕組みは次のとおりです。まず、大学のネットワークにVPN接続します。次に、ポート転送でSSHを呼び出します。次に、Firefoxブラウザーを開いてローカルホストポートに接続すると、サーバー側でRStudioが開き、ローカルブラウザーウィンドウからアクセスできます。

ホームネットワークからログインしようとすると、私が今抱えている問題は次のとおりです。

VPN接続を正常に確立できます。次のコマンドでSSHを正常にセットアップすることもできます:ssh -v -L 8783:localhost:8783 [email protected]

成功したsshコマンドの詳細出力の最後の数行は次のとおりです。

debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:8783 forwarded to remote address localhost:8783
debug1: Local forwarding listening on 127.0.0.1 port 8783.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 8783.
debug1: channel 1: new [port listener]
debug1: channel 2: new [client-session]
debug1: Entering interactive session.
Last login: Mon Sep  2 04:02:40 2013 from vpnipaddress

だから、私はまだVPNとSSHの段階で成功していると思います(それ以来、何度かログインしたときに最後のログインが9月2日だった理由がわかりません)。

次に、Firefoxを開き、localhost:8783と入力します。ブラウザーウィンドウからRStudioサーバーアプリを取得する代わりに、次のエラーが表示されます。

Firefoxブラウザウィンドウで、「サーバーが見つかりません、Firefoxはwww.localhost.comでサーバーを見つけられません。入力エラーのアドレスを確認してください」などと表示されます。

ターミナルウィンドウで次のように表示されます。

debug1: Connection to port 8783 forwarding to localhost port 8783 requested.
debug1: channel 3: new [direct-tcpip]
channel 3: open failed: connect failed: Connection refused
debug1: channel 3: free: direct-tcpip: listening port 8783 for localhost port 8783, connect from 127.0.0.1 port 50420, nchannels 4

何が間違っているのか分かりません。最後に正常に接続してから、ラップトップの何も変更していません。私は自分のルーター(いとこではなく)上にいるので、ファイアウォールをいじる必要があるかもしれません。ポート22と8783がファイアウォールを通過してラップトップに到達することを既に許可しました(それを行う必要があるかどうかはわかりません)。助けて?

33
user2762495
ssh -v -L 8783:localhost:8783 [email protected]
...
channel 3: open failed: connect failed: Connection refused

ローカルシステムのポート8783に接続すると、その接続は、sshリンクを介してserver.comのsshサーバーにトンネリングされます。そこから、sshサーバーはTCP localhostポート8783への接続を作成し、トンネル接続とトンネルのターゲットへの接続の間でデータを中継します。

「接続拒否」エラーは、トンネルのターゲットにTCP接続を確立しようとしたときに、server.comのsshサーバーから発生します。「接続拒否」は、接続試行があったことを意味します拒否の最も簡単な説明は、server.comでは、localhostポート8783で接続をリッスンするものが何もないということです。つまり、トンネルしようとしていたサーバーソフトウェアが実行されていないか、実行されているということです。しかし、それはそのポートでリッスンしていません。

65
Kenster

これを投稿して誰かを助けます。

症状:

channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip:
   listening port 8890 for 169.254.76.1 port 8890,
   connect from ::1 port 52337 to ::1 port 8890, nchannels 8

私のシナリオ;他の場所に接続するには、リモートサーバーを要塞ホストとして使用する必要がありました。最終宛先/ターゲット:169.254.76.1、ポート8890。パブリックIPを使用した中間サーバー経由:ec2-54-162-180-7.compute-1.amazonaws.com

SSHローカルポート転送コマンド:

ssh -i ~/keys/dev.tst -vnNT -L :8890:169.254.76.1:8890
[email protected]

問題点:ターゲットホストのポート8890にバインドされたサービスはありませんでした。サービスを開始するのを忘れていました。

トラブルシューティングの方法:

要塞ホストにSSHで接続し、カールします。

お役に立てれば。

1
AravindR

トンネル経由でvnc接続を確立したいときにこの問題が発生しました。しかし、vncserverは実行されていませんでした。 vncserver :3でリモートマシンのチャネルを開くことで解決しました。

0
friedrich

遅すぎるかもしれませんが、同じ問題にぶつかり、ポートごとにマップしたくなかったので、/etc/ssh/sshd_configファイルと追加:

AllowTCPForwarding yes PermitOpen any

その後、sshを再起動するだけです

0
Walucas

注:localhostは、ローカル(ループバック)ネットワークインターフェイスを使用するアドレスのホスト名であり、127.0.0.1IPv4ネットワーク標準のIP (IPv6では::1です)。 0.0.0.0は、IPv4標準の「現在のネットワーク」IPアドレスです。

Dockerセットアップでこのエラーが発生しました。外部サーバーでDockerコンテナーを実行しており、そのポートを127.0.0.1:9232:9232として(正しく)マッピングしました。 ssh remote -L 9232:127.0.0.1:9232をポート転送することで、remoteサーバーのポート9232と自分のローカルポートであるかのように通信できると期待されていました。

Dockerコンテナーは、そのプロセスを127.0.0.1:9232ではなく0.0.0.0:9232で内部的に実行しているため、コンテナーのポートマッピングを正しく指定したとしても、正しいインターフェイス上にないことが判明しましたマッピングされています。

0
Jamie Birch

以前は、ネットワークサービスを再起動したときにサーバーで「localhost」が使用できなかったため、同様の問題に遭遇していました。 「ifdown -a」ですが、「ifup -eo1」のみが続きます。サーバーがポートをリッスンしていないことに加えて、「localhost」が使用可能かどうかも確認できます。

ps:同様の問題を抱えている人の利益になることを願って投稿してください。

0
Xiaoyan Zhuo