需求:
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:
成功!