17

ラボのリモートサーバー上のMySQLデータベースにアクセスする必要があります。リモートネットワーク上のゲートウェイサーバーにログインすると、サーバーにアクセスできるようになります。

local server => gateway server => MySQL server.

ポート24222を使用してゲートウェイにSSH接続できます。

私はPERLDBIモジュールを使用しています。これは、私がラボにいるときに接続するために使用するものです。

my $host="1.2.3.4";
my $database="dbname";
my $user="user";
my $pw="pass";
my $table="table";    

ゲートウェイサーバーからデータベースサーバーへのトンネルを設定する必要があると思います。どうすればそれを行うことができますか?MySQLデータベースがゲートウェイ上にある場合、次のようにトンネルを開くことができます。

$ ssh -f user@gateway -L 3307:127.0.0.1:3306 -N 

これを変更して、ゲートウェイの開いているポート24222を経由して1.2.3.4のMySQLサーバーにトンネリングするにはどうすればよいですか?


アップデート:

@anttirの回答を使用して、次のように機能させることができました。

  1. トンネルを設定します。

    $ ssh -fN -p 24222 user1@11.12.13.14 -L 3307:1.2.3.4:3306
    
  2. スクリプト変数を設定します。

    my $host="127.0.0.1";
    my $port = 3307;
    
4

3 に答える 3

21

コマンドを使用して:

$ ssh -f user@gateway -L 3307:1.2.3.4:3306 -N 

これは、クライアントlocalhost 3307へのすべての接続が、SSHトンネルを介してゲートウェイに転送され、ホスト1.2.3.4からポート3306に接続されることを示しています。

編集:SSHがポート24222にある場合

$ ssh -f user@gateway -p 24222 -L 3307:1.2.3.4:3306 -N 
于 2012-09-19T12:37:37.093 に答える
5

MySQLサーバーにアクセスするために複数のホップを使用する必要がある場合は、最初に.ssh / configファイルを作成し、次のようにProxyCommandを使用することをお勧めします。

  Host gateway
     HostName example.com
     User foo
     Port 22
     IdentityFile ~/.ssh/id_rsa.pub

  Host mysql_access_server
      HostName example-web.com
      Port 22
      User foo
      ProxyCommand ssh -A gateway nc %h %p

次に、次のようにポートを転送します。

ssh -f mysql_access_server -L 3309:sqlmaster.example.com:3306 -N

次に、次のようにMySQLサーバーにアクセスできます。

mysql --user=root --host=127.0.0.1 --password=root --port=3309 some_db_name
于 2013-09-26T07:42:42.483 に答える
2

トンネルの使用:

ssh -f user@gateway -L 3307:1.2.3.4:3306 -N 

ローカルホストポート3307でデータベースに接続できるようになります

于 2012-09-19T12:45:09.320 に答える