私の今までの旅

私の今までの旅

SSHトンネリングの概念を理解していないようです。私が現在行っている状況は次のとおりです。

  • 仕える人、sshを介してアクセスでき、その中にmysql dbを介してアクセスできますlocalhost:3306
  • 仕える人第二、SSH経由でアクセスできます。
  • MySQLインスタンスアクセス可能第二。サーバー自体にはアクセスできず、データベースサーバーにのみアクセスできるため、どこでもsshを使用できません。。すべてのポートにのみ接続できます。第二

私の目標はMySQLレプリケーションです到着ここで、Aはマスター装置であり、- 奴隷。で接続したい場合はどうすればよいですか?到着。私はそれが次のように想像しています。

C ─────────B:B_PORT────────> B
                            │││
         |/─────tnl A:22────┘││
A_db <────localhost:3306─────┘│
         |\─────tnl A:22──────┘

これまで私はこれを実行してみました。第二 sudo ssh -L B_PORT:localhost:3306 A_user@A_ip -f -Nしかし、まだアクセスできないと思います。~から、接続時B_ポート

編集:ssh -L B_PORT:localhost:3306 A_user@A_ip -f -N -g@larsksが提案したように試しましたが、うまくいきませんでした。彼の説明によると、ネットワークに問題がある可能性があると信じていました。

私の今までの旅

  1. 次の場所にトンネルを作成第二そしてssh -L B_PORT:localhost:3306 A_user@A_ip -f -N -g
  2. つながる到着第二
  3. ネットワーク統計が有効になっています。第二複数のSYN_RECV接続を表示到着第二
  4. 私が接続しようとするとB_ポート~から第二わかりました。
packet_write_wait: Connection to A port 22: Broken pipe
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
  1. SSH接続が切断されました第二トンネルを再開する必要があります
  2. セキュリティグループやその他のネットワークルールを試してください。ネットワークインバウンドとアウトバウンドの有効化すべてが正常です!

ベストアンサー1

-gSSHコマンドラインにオプションを追加する必要があります。

     -g      Allows remote hosts to connect to local forwarded ports.
             If used on a multiplexed connection, then this option
             must be specified on the master process.

Bこれにより、これらの接続を確立するためにホストに転送されたポートが公開されますC。これは、ファイアウォール構成がB これらの接続を可能にすると仮定します。

このオプションは、ローカルポートに使用されるローカルバインディングアドレスを変更します-gsshそれ以外の場合、-g結果-L 8000:localhost:8000は次のようになります。

$ netstat -tln | grep 8000
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:8000                :::*                    LISTEN     

ご覧のとおり、この場合、両方のソケットはループバックアドレス(127.0.0.1ipv4と::1ipv6の場合)にバインドされています。

これにより、-g我々は以下を得る。

$ netstat -tln | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN     
tcp6       0      0 :::8000                 :::*                    LISTEN     

sshこの場合、ループバックアドレスの代わりにワイルドカードアドレスへのバインディングが行われたことを確認できます。

おすすめ記事