Mac配置远程服务器隧道代理

因为安全原因远程服务器的数据库不允许本地直接访问,又没有开启访问IP白名单时,可以通过隧道代理访问。Windows系统通过xsheel可以设置隧道代理。Mac只需要运行如下命令

1
2
3
ssh -p 22  -i ~/.ssh/id_rsa -fNL 代理端口:代理IP:转发原端口 用户名@远程服务器IP

ssh -p 22 -i ~/.ssh/id_rsa -fNL 3308:127.0.0.1:3306 root@118.xx.xxx.xx
1
2
3
ssh -p {ssh_port} -i {rsa_file} -fNL {local_port}:{mysql_ip}:{mysql_port} 
{ssh_user}@{ssh_ip}
ssh -p 22 -i ./id_rsa_jump -fNL 33060:mysql_ip:3306 jump@jump_ip # 实例

-p {ssh_port}: 指定跳板机器的ssh服务的端口
-i {rsa_file}:指定连接跳板机的ssh公钥,由跳板机的ssh服务端生成,如果不指定公钥或者公钥验证失败则会弹出密码进行登录。
-f:需进行ssh认证
-N:只进行端口转发,不执行命令
-L:指定连接服务的格式 [bind_address:]port:host:hostport
{local_port}:本地监听的端口
{mysql_ip}:转发到的mysql的ip或域名
{mysql_port}:转发到的mysql的端口
{ssh_port}:跳板机的
{ssh_user}:跳板机的ssh用户名(如果为rsa登录,则ras对应的用户名和ssh_user一致)
{ssh_ip}:跳板机的ip或域名
检查是否启动成功
netstat -aon|findstr “33060” #存在对应的监听则启动成功 如果要关闭则kill
连接mysql
ip:127.0.0.1
port:33060