2014-11-25 35 views
-1

我想配置一個SSH隧道繞過遠程數據庫(remote_mysql_server)的mysql調用由有權訪問它(remote_host)的主機,但我不知道有什麼區別(注意本地端口之前結腸:):SSH隧道之間的差異

> ssh -f [email protected]_host -L 3306:remote_mysql_server:3306 -N 
> lsof -i :3306 
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
ssh  16797 vagrant 4u IPv6 31697  0t0 TCP localhost:mysql (LISTEN) 
ssh  16797 vagrant 5u IPv4 31698  0t0 TCP development:mysql (LISTEN) 

> ssh -f [email protected]_host -L :3306:remote_mysql_server:3306 -N 
> lsof -i :3306 
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
ssh  16805 vagrant 4u IPv6 31697  0t0 TCP *:mysql (LISTEN) 
ssh  16805 vagrant 5u IPv4 31698  0t0 TCP *:mysql (LISTEN) 

他們都爲我工作執行mysql -h 127.0.0.1 -u dbusername -pPasswordDB database

回答

1

-L選項的格式是:

-L [bind_address:]port:host:hostport 

bind_address:的部分是可選的,並且如果它缺少隧道僅結合到localhost(默認行爲可以使用ssh配置GatewayPorts選項改變)。但是,如果您指定它,它會綁定到您指定的內容或所有接口,如果您使用空bind_address*

+0

據我所知,bind_address參數然後是來自端口3306上的請求地址。這就解釋了爲什麼對我來說,從localhost執行mysql指令對他們沒有任何影響,但在第二種情況下,我可以使用其他機器上的'-h development'連接到MySQL。謝謝! – marcostvz 2014-11-25 13:51:23