需求:
A本地开发机器
B远程服务器
CMysql机器
A通B B通C 但是AC不通
方法1
(此方法要求必须可以 telnet 通服务器的22端口 公司要求不可以用22端口连接 只能使用堡垒机)
navicat连接时 使用ssh转发 进行连接
原理 正向代理(也许是?具体没太明白)

方法2
在远程服务器开放端口 进行转发
无论任何ip访问该服务器指定端口时
都可以转发的mysql上 实现任何机器都可以连接mysql
指令
ssh -g -f -NL 服务器BIP:服务器BPort:MysqlCIP:MysqlCPort 服务器B的账号@服务器BIP
此处注意服务器B使用内网ip 而非弹性ip
ssh -g -f -NL 代理服务器ip:代理服务器端口:目的服务器ip:目的服务器端口 代理服务器账号@代理服务器ip
代码中ip等关键信息使用***代替
[root@p82628v web]# ssh -g -f -NL ***:***:***:*** test@***
The authenticity of host '*** (***)' can't be established.
ECDSA key fingerprint is SHA256:kc4H5/+FaVlioZveEsfFeRNME6TBcuD0/HdENXf6/D8.
ECDSA key fingerprint is MD5:90:22:da:cc:59:fc:28:d2:e9:c7:6f:04:06:fc:61:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '***' (ECDSA) to the list of known hosts.
test@***'s password:
成功!

在无法直接连接远程MySQL服务器的情况下,可以通过SSH隧道进行端口转发。方法一是使用Navicat通过SSH转发建立连接,方法二是配置服务器B进行端口转发,允许任何机器连接到MySQL。在执行端口转发时,需注意确认服务器的身份并提供密码。
881

被折叠的 条评论
为什么被折叠?



