ssh+mysql連接方式及其底層實現方式

這是一種網絡的保護策略,且不需要root用戶授權的網絡跳轉。學會這個,可以應用到其他應用中,不僅僅用於mysql的連接。

先說一下場景:

mysql所在服務器A:172.16.131.7

中轉服務器B:172.16.131.13

windows客戶端

 

服務器A只對131段的機器開放了22和3306端口,其他段的之開放22端口。

服務器B對外的端口都開放。

windows客戶端需要使用服務器A的mysql服務

1.首先第一步我們使用mysql客戶端自帶的配置,訪問服務器A的mysql服務。服務器A的3306端口不對外開放,只有22端口。需要跳過,這樣來配置:

在常規頁面這樣的:

注意:常規頁中的主機名,是localhost

爲什麼這個樣子?Windows客戶端通過訪問服務器A的22端口建立通道,然後在服務器A的22端口跳轉到本地3306端口來訪問mysql。

2.下面就用命令來實現上面的ssh頁面配置。

需要支持ssh命令哦,不支持的話需要自己來安裝ssh服務。

點擊可以參照文章

上面的意思是:windows與131.7建立ssh通道,本機啓動監聽3306端口(第一個),用hywlptapp這個用戶,通過ssh通道的22端口(默認端口)登錄,並與131.7的3306端口建立連接。

簡單來說:windows的3306端口和服務器A的3306端口建立通道了,可以訪問本機的3306端口就能訪問服務器A的3306了。

學會這個命令,就可以通過22端口跳到其他服務器了。

3.只能監聽3306嗎?答案是否定的。也可以監聽別的端口訪問。

ssh -L 9999:localhost:3306 [email protected]

解讀:本地監聽9999端口,與服務器A的3306端口建立了連接。

4.windows和服務器A之間可以通過別的服務器連接嗎?OK,沒問題。

windows客戶端啓動3306端口,訪問服務器B的22端口,再與服務器A的3306端口建立通道。

服務器B沒有做任何配置,都是在windos上面執行命令的。

4.如果中間不止一臺服務器在中間,怎麼辦?

4.1 服務器B啓動監聽服務,連接服務器A。

4.2 windows啓動監聽連接服務器B。

第3,4個的最終效果是一樣的,但是服務器B又多做了一步操作,這樣即使有多臺服務器,也都是可以複製的。

服務器B監聽9999端口,訪問服務器A的3306

windows監聽3306,,訪問服務器B的9999端口。

這樣就形成一條鏈路:

這樣即使有多臺服務器在中間也可以進行網絡跳轉了,ssh又很通用,適用範圍廣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章