1. ホーム
  2. macos

[解決済み] SSH -L 接続は成功したが、localhost のポート転送が機能しない "channel 3: open failed: connect failed: 接続が拒否されました"

2022-01-29 09:04:20

質問

私の研究室では、サーバー上でRStudioを動かしています。 数週間前、いとこの家からサーバーに ssh して、ローカルの Firefox ブラウザからサーバー側の RStudio を表示させることに成功しました。 今、自宅から(私のルーターを経由して)サーバーRStudioにアクセスしようとすると、それは動作しません。 トラブルシューティングの助けが必要です。ルーターに何らかの問題があると思われます。 Mac OSX 10.6.8を使用しています。 大学のサーバーが何を動かしているかは分からないが、サーバー側の問題ではないと思う。

まず、大学のネットワークにVPN接続し、ポートフォワーディングでSSHを呼び出し、Firefoxブラウザを開き、自分のlocalhostポートに接続すると、サーバ側に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のブラウザウィンドウで、こう表示されます。Server not found, Firefox can't find the server at www.localhost.com, Check the address for typing errors などと表示されます。

ターミナルウィンドウに、こう表示されます。

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がファイアウォールを通ってラップトップに来るのをすでに許可しています(その必要があったのかどうかさえ分かりませんが)。 助けてください。

解決方法は?

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

ローカルシステムでポート 8783 に接続すると、その接続は ssh リンクを経由して サーバー・ドット・コム . そこから、sshサーバーはlocalhostポート8783にTCP接続を行い、トンネル接続とトンネルのターゲットへの接続の間でデータを中継します。

server.comのsshサーバーがトンネルのターゲットにTCP接続しようとすると、"connection refused"のエラーが発生します。"connection refused" は、接続試行が拒否されたことを意味します。接続拒否の最も簡単な説明は、server.com 上で localhost ポート 8783 の接続をリッスンしているものがない、というものです。言い換えれば、あなたがトンネルを掘ろうとしたサーバーソフトウェアが起動していないか、起動していてもそのポートでリッスンしていないのです。