ssh隧道远程连接mysql

有时候比如一些云主机,没有开放3306端口,这里可以用ssh隧道来连接数据库,更加安全

注意点:

1.本地ssh可以登录远程服务器,(密码或者秘钥)

2.远程数据库需要赋权限给隧道端的ip

命令:

ssh -NCPf root@111.111.111.111 -L 3388:192.168.1.1:3306

参数:

-C    使用压缩功能,是可选的,加快速度。 
-P    用一个非特权端口进行出去的连接。 
-f    一旦SSH完成认证并建立port forwarding,则转入后台运行。 
-N    不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)

这里的root@111.111.111.111是连接远程服务器的用户名和IP

-L 3388:192.168.1.1:3306  这里表示建立的隧道,3388是本机端口,通过3388和远程服务器建立隧道,192.168.1.1是内网ip,可以用127.0.0.1,当然也可以用外网ip,这里要注意数据库要给这个ip赋权,因为隧道连接实际上就是数据库连接的这个ip ,后面的是远程数据库的端口

这个命令在本地运行

运行这个命令会在本地机器上开启3388端口

ss和nestat 和lsof可以看到,开启了127.0.0.1:3388

连接:

本地装好mysql客户端

mysql -u用户名 -P 3388 -h127.0.0.1 -p密码

恭喜你登陆了

 

posted @ 2017-10-26 16:52  行知散人  阅读(7174)  评论(0编辑  收藏  举报