多段プロキシーでMySQLに接続するメモ
はじめてQiitaに書いてみる。
とりあえず多段プロキシーでMySQLに繋がないといけなかったので、設定のメモだけ
最近多段プロキシーでMySQLにアクセスしないといけなくなったので、忘れないように設定等をメモしてみる
※Qiitaってmermaid.js使えないのか...
用語・略語
- A5: SQL開発ツール(Windows用)
- VB: VirtualBox
- AP: アプリケーション
概要
環境
- クライアント側
- A5でMySQLに接続する
- クライアントOSはWindows10
- VirtualBoX上でCentOS7を起動
- サーバー側
- 踏み台サーバー経由でAPサーバーへ接続
- APサーバーからしかMySQLに接続出来ない
IPアドレス(説明のために適当に記載)
- Windowsクライアント: 192.168.0.10
- CentOS(VB): 192.168.56.200
- ホストオンリーアダプターにWindows側から接続
- 踏み台サーバー: 192.168.0.100
- APサーバー: 192.168.0.101
- MySQLサーバー: 192.168.0.102
接続方法
- まずCentOSからMySQLに直接接続するためのSSHトンネルを作成する
- CentOS7のポート10000がMySQLのポート3306に接続される
- クライアントからは、SSHトンネル経由でCentOSに接続
- CentOS7のポート10000に接続
概要図
※Qiitaでは、mermaid.js使えないのは辛い。他で作って図だけ挿入
CentOS .ssh以下の設定
configの設定
踏み台サーバーへのログインは公開鍵でログインする
.ssh/config
Host fumidai
Hostname 192.168.0.100
User user100
IdentityFile=~/.ssh/id_rsa_fumidai
Host ap_server
Hostname 192.168.0.101
User user101
ProxyCommand ssh fumidai nc %h %p
トンネル(2)の作成
ssh -f -N -C -L 10000:MySQLサーバー:3306 APサーバー
実際にはIPアドレスで以下のように指定
ssh -f -N -C -L 10000:192.168.0.102:3306 192.168.0.101
トンネル(1)経由でA5からMySQLサーバーへ接続
A5にはトンネル経由の接続が設定可能なので、A5のSSHトンネルの設定は以下
- SSH2ホスト名:192.168.56.200
- ユーザーID: User10
- CentOS7のユーザーID
- パスワード: CentOS7のパスワード
- パスワード認証で接続
まとめ
- とりあえず上記設定で、A5から直接MySQLサーバーに接続出来た
- ERMaster等で接続する場合は、WindowsマシンからCentOS7に対してSSHトンネルを先に作成する必用がある
- putty等でトンネリング設定をして接続しておけば良いはず
- Macの場合は、CentOSで設定したsshトンネリングを直接記載すれば良いだけなので、より簡単に接続出来る
- ※もう開発にWindowsマシン使うのやめたい!(切実な思い)