SSH によりリモートホストがローカル転送ポートに接続できるようになる

SSH によりリモートホストがローカル転送ポートに接続できるようになる

現在、RHEL 7.0 で ssh オプション -g (つまり、ローカル転送ポートへのリモート ホストの接続) に関する問題が発生しています。

通常のコマンドラインを使用して、myserver_ip アドレスのサーバーからポート転送による接続を確立しています:

ssh -o StrictHostKeyChecking=no user@server_fqn -L9090:other_server_ip:9080 -g

ブラウザを指定すると(または curl で何かを取得しようとすると)、接続拒否例外が発生します。

curl -X GET "http://myserver_ip:9090"
curl: (7) Failed to connect to myserver_ip port 9090: No route to host

Ubuntu サーバーで同じことを実行すると完璧に動作しますが、RHEL では動作しません。

ファイアウォール、selinux、さらにはネットワーク接続にも疑いがありました。

この問題を解決/トラブルシューティングするために、次のことを試しました。

  • ファイアウォールを無効にした(service firewalld stop
  • selinuxが9090を有効なhttpポート(semanage port -l | grep 9090)として管理していることを確認しました。問題ありませんでした。
  • netstat() でポートが開いているか確認したところnetstat -alptn | grep 9090 、問題なさそうです。9090 で ssh プロセスがリッスンしています。
  • サーバーがイーサネット インターフェイス ( tcpdump -i ens192 'port 9090' -v) のポート 9090 でパケットを受信することを確認しました。実際にパケットが受信されています...

したがって、基本的には、システムがインターフェース上で要求を受信し、ssh プロセスが指定されたポート上のすべてのインターフェースでリッスンしているが、ssh プロセスはパケットを反対側に転送しないことを確認しました...

トラブルシューティングの手がかりが本当に不足しています。何かご提案がありましたら、遠慮なくお寄せください。ご協力いただければ幸いです。

ありがとう、

答え1

Curl はすでに答えを述べています。SSH の問題でも、ファイアウォールの問題でも、selinux の問題でもありません。

no route to host

curl を実行しているマシンは、(関連付けられている IP アドレス) my server_ip 宛てのパケットをどこに送信すればよいかわかりません。

関連情報