質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

PhpStorm

PhpStormは、JetBrains社が提供しているPHP向けのIDEです。同社の製品であるWebStormの機能を内包しており、優秀なコード補完やコード分析など多彩な機能を備えています。

Q&A

解決済

1回答

27978閲覧

SSHのポートフォワーディングで失敗する【PhpStormのリモートデバッガ環境構築】

th1209

総合スコア40

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

PhpStorm

PhpStormは、JetBrains社が提供しているPHP向けのIDEです。同社の製品であるWebStormの機能を内包しており、優秀なコード補完やコード分析など多彩な機能を備えています。

0グッド

0クリップ

投稿2016/06/02 01:05

いつもお世話になっております。
現在、PhpStormでリモートデバッグの環境構築をしています。

その際、SSHのポートフォワーディングで以下のようなwarnigが出て、なかなか解決できません...。

Warning: remote port forwarding failed for listen port 9001

詳細を以下に記載するので、どなたかご教授頂けないでしょうか。
よろしくお願いいたします。

前提条件
  • サーバ側は9002番,ローカルマシン側は9001番のポートを使います。
  • 便宜上、サーバ側のホスト名をremote-serverとします。
行った操作
  • ssh コマンドの-Rオプションを使って、ポートフォワーディングを行いました。

  • (リモートサーバの9002番ポートへの接続を、ローカルの9001番ポートへの接続に転送したい)

  • ssh -f -N -R 9001:remote-server:9002 remote-server

  • 結果、以下のwarningが出ます。

  • Warning: remote port forwarding failed for listen port 9001

  • ※ sshの接続設定は、/~/.ssh/configファイルに記載済みです。

確認した内容
  • サーバ側はCentOSを使用しています。

  • サーバ側の9002番ポートは、iptablesファイルを編集してポート開放済みです。また、FireWall周りも設定済みです。

  • service iptables restart,service nginx restartなどを実行し、必要なサービスは再起動済みです。

  • サーバ側でnetstat -t -aを実行すると、9002番ポートが表示されません。もしかしたら、xdebugの設定が間違っていて、9002番ポートを使うxdebugが起動していないかもしれません...。

  • ローカルマシンはMacOSを使用しています。

  • ネットワークユーティリティを使い、9001番ポートが開放しているのを確認済みです。

  • ローカルのwebサーバはApacheを使っており、こちらも起動済みです。

  • こちらも、netstat -t -aを実行しても、9001番ポートについて表示されません...。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(リモートサーバの9002番ポートへの接続を、ローカルの9001番ポートへの接続に転送したい)

ssh -f -N -R 9002:localhost:9001 remote-server

投稿2016/06/02 01:37

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

th1209

2016/06/02 02:05 編集

ご教授いただきありがとうございます! 確かに、-Rオプションを使う場合は、以下のようにするのが正しいですね。 初歩的なミスをしておりました;^_^A `-R リモートポート:ローカルホスト名:ローカルポート` ですが、これでもうまくいかず、今度は `remote port forwarding failed for listen port 9002` というエラーメッセージが出ました。 何か解決策ご存じでないでしょうか...?
TaichiYanagiya

2016/06/02 02:17

リモートサーバーの /var/log/messages に sshd のログは何か出ていませんでしょうか。
th1209

2016/06/08 01:23

TaichiYanagiyaさん ご連絡いただきありがとうございます。 /var/log/messages以下を調べてみたのですが、ssh関連のログは出ておりませんでした。 大変恐縮なのですが、他にここのログを見た方が良いというものはありますでしょうか...?
th1209

2016/06/08 01:54 編集

再度調べてみました。多少進展ありましたので、共有させていただきます。 `/var/log/secure`以下にエラーが吐かれるとのことでしたので、見てみました。以下のようなエラーが出ておりました。どうも、9002番ポートが他で使われているようです...。 Jun 8 10:31:13 NPGR20209-020 sshd[23682]: bind: Address already in use Jun 8 10:31:13 NPGR20209-020 sshd[23682]: socket: Address family not supported by protocol Jun 8 10:31:13 NPGR20209-020 sshd[23682]: error: channel_setup_fwd_listener: cannot listen to port: 9002 また、リモートサーバ上で、`netstat -an | grep 9002`を打ったところ、以下のように表示されました。やっぱり、リモートサーバ上で9002番ポートを使ってしまっているようです... `tcp 197415 194944 127.0.0.1:9002 127.0.0.1:9002 ESTABLISHED` 次に、` lsof -i -n -P | grep 9002`で打ってみたところ、以下の結果となりました。 リモートサーバ上のphpで9002番ポートを使ってしまっているようですので、一旦php.iniファイルの設定を見直すなどする必要があるのかなと思います。 php 17535 root 3u IPv4 181900245 0t0 TCP 127.0.0.1:9002->127.0.0.1:9002 (ESTABLISHED)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問