開發(fā)中遇到的需求:使用本地 localhost:3306 映射到遠(yuǎn)程 二號(hào)服務(wù)器 192.168.1.3:3306,但二號(hào)服務(wù)器沒有公網(wǎng)IP。

image.png
一、SSH 隧道技術(shù)原理:
是在【開發(fā)機(jī)】打開3306端口監(jiān)聽,將3306的連接請(qǐng)求轉(zhuǎn)發(fā)到 【一號(hào)服務(wù)器】的SSH 連接(22端口),然后由【一號(hào)服務(wù)器】以TCP連接請(qǐng)求到 【二號(hào)服務(wù)器】的3306端口
二、命令:
ssh -L 3306:192.168.1.3:3306 -Nf root@10.0.0.5
解釋:
- 第一個(gè)3306是【開發(fā)機(jī)】監(jiān)聽的端口;
- 192.168.1.3 是【二號(hào)服務(wù)器】的內(nèi)網(wǎng)IP
- 第二個(gè)3306 是【二號(hào)服務(wù)器】的MySQL的服務(wù)端口
- root@10.0.0.5 是SSH登錄【一號(hào)服務(wù)器】
- -N 登錄【一號(hào)服務(wù)器】不執(zhí)行任何登錄腳本
- -f 以后臺(tái)靜默方式登錄【一號(hào)服務(wù)器】,即不進(jìn)入其交互模式。
命令執(zhí)行后,可以使用以下命令查看端口打開的情況:
lsof -i:3306
連接執(zhí)行
注意:為完成無感方式連接,需要預(yù)先配置好與【一號(hào)服務(wù)器】的免密登錄
mysql --host localhost -uroot -p
此時(shí)即完成了向【二號(hào)服務(wù)器】3306端口的連接。