本文主要介绍两部分内容:
- 如何通过SSH隧道端口转发的方法,实现本地端口访问远程服务器MySQL数据库;
- 如何保持SSH连接。
业务背景说明
由于爬虫的时候使用了VPN,使得我的IP地址发生改变,从而导致无法访问服务器数据库(有IP地址限制),所以希望通过端口转发的方式解决这个问题。
1.端口转发
我的本地环境为Win10,假设我想转发的本地端口为9006
,服务器数据库地址为10.0.0.11:3306
,那么只需要在Win10上打开Windows Powershell,输入以下命令:
ssh -fNg -L 9006:10.0.0.11:3306 root@10.0.0.11
执行以上命令后,接着输入服务器root
账户的密码,成功之后就可以通过访问本地端口的方式访问服务器数据库。也就是说你只需要访问localhost:9006
就能够连接到10.0.0.11:3306
。
不知道如何安装Powershell的可以这篇文章windows通过OpenSSH将数据库端口映射本地方法!。
2.保持连接
完成了第一个步骤之后,我们还需要通过设置让SSH保持连接,否则的话长时间不使用该端口,SSH连接就会自动关闭。
ssh保持连接这篇文章中介绍了两种方法,一种是通过修改服务器配置的方法,另一种则是通过修改本地配置的方法,我选择了修改本地配置。
我们需要找到本地Win10的ssh_config
配置文件,打开后在最后面新增两行配置:
TCPKeepAlive yes
ServerAliveInterval 300
前一个参数是说要保持连接,后一个参数表示每300秒发一个数据包到服务器表示“我还活着”。
经过上面两个步骤,所有操作就已经完成了。