image.png开发中遇到的需求:使用本地 localhost:3306 映射到远程 二号服务器 192.168.1.3:3306,但二号服务器没有公网IP。
一、SSH 隧道技术原理:
是在【开发机】打开3306端口监听,将3306的连接请求转发到 【一号服务器】的SSH 连接(22端口),然后由【一号服务器】以TCP连接请求到 【二号服务器】的3306端口
二、命令:
ssh -L 3306:192.168.1.3:3306 -Nf root@10.0.0.5
解释:
- 第一个3306是【开发机】监听的端口;
- 192.168.1.3 是【二号服务器】的内网IP
- 第二个3306 是【二号服务器】的MySQL的服务端口
- root@10.0.0.5 是SSH登录【一号服务器】
- -N 登录【一号服务器】不执行任何登录脚本
- -f 以后台静默方式登录【一号服务器】,即不进入其交互模式。
命令执行后,可以使用以下命令查看端口打开的情况:
lsof -i:3306
连接执行
注意:为完成无感方式连接,需要预先配置好与【一号服务器】的免密登录
mysql --host localhost -uroot -p
此时即完成了向【二号服务器】3306端口的连接。
网友评论