异想天开

What's the true meaning of light, Could you tell me why

本地虚拟机访问远程vps数据库

日期:2018-12-16 17:03:57
  
最后更新日期:2018-12-16 17:03:57
背景:
访问mysql时,一般限制了用户名的访问ip。而在外网的的笔记本电脑,出口ip不是固定的,那么这个时候怎么通过外网的笔记本访问vps上的数据库呢?
解决:
1. 在virtualbox本地虚拟机建立ssh隧道
[code lang="cpp"]
ssh -fN -L10.0.2.15:3307:127.0.0.1:3306 -p36000 root@118.190.14.248
ssh -fN -L127.0.0.1:3307:127.0.0.1:3306 -p36000 root@118.190.14.248
[/code]
上诉的意思为访问本地的127.0.0.1:3307端口, 等价于在远程的vps上访问127.0.0.1:3306。这里由于笔记本是通过虚拟机的端口共享,也将虚拟机的网卡地址10.0.2.15建立一条隧道到vps
虚拟机上通过mysql命令测试能通。

2. 笔记本打开virtualbox的端口共享。

3. 笔记本python脚本使用MySQL库连接。发现虚拟机的3307端口收到了笔记本的sync包,但没有给答复。加一条iptables规则。
[code lang="cpp"]
iptables -I INPUT -p tcp --dport 3307 -j ACCEPT
[/code]
自此,笔记本就可以欢快访问mysql了。