[linux] 透過ssh連到遠端主機內部的port

建立時間: 2017-03-21 13:44:43
更新時間: 2017-06-15 00:56:24

前言

在佈署web主機時

我們會為了安全只對外開放幾個port(80, 443, 22)

但是如果需要操作web主機上的DB時都要連上那台主機

然後開phpmyadmin

甚至是根本沒圖形化操作介面只能用mysql command

會非常不方便

所以可以透過俗稱linux挖洞的方式

來透過localhost連到remote的主機3306 port

然後用localhost的phpmyadmin來操作remote DB

 

開始挖洞

9000為localhost的port

3306為remote DB的port

透過下面的方式

能夠從localhost的9000 port連到remote 3306 port

 ssh -L 9000:localhost:3306

 

如果是要先ssh登入的話如下

 ssh -i /path-to-ssh-key/sshkey remote@host.com -L 9000:localhost:3306

 

修改phpmyadmin設定

linux路徑: /etc/phpmyadmin/config.inc.php

加上新的主機設定

 $i++;
 $cfg['Servers'][$i]['verbose'] = 'Remote DB';
 $cfg['Servers'][$i]['host'] = '127.0.0.1';
 $cfg['Servers'][$i]['port'] = '9000';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
 $cfg['Servers'][$i]['auth_type'] = 'cookie';
 $cfg['Servers'][$i]['user'] = '';
 $cfg['Servers'][$i]['password'] = '';

 

最後重啟apache

就能看到phpmyadmin多了主機的選單了