问题:
腾讯云的一些数据库实例是没有外网地址的,如sqlserver,mongodb,redis等,这些数据库是没有提供外网地址的,只能使用同账号同地域的服务器内网连接,那我们想要从本地电脑使用外网来连接怎么办呢
解决方案:
嘿嘿嘿,首先您还是得有一个可以与这些没有外网地址的数据库可以联通的同账号同地域的服务器,用这台服务器来做转发
简单示例(一):
1.测试环境
linux服务器一台,内网ip:10.105.243.140 外网ip:111.231.25.24
cdb for sqlserver一台,内网地址10.66.201.92:1433
sqlserver测试帐号和测试库 yipingbuman
2.使用iptables做端口映射
将云服务器1234端口的请求转发至sqlserver的地址上
iptables -t nat -A PREROUTING -d 10.105.243.140 -p tcp --dport 1234 -j DNAT --to-destination 10.66.201.92:1433
iptables -t nat -A POSTROUTING -d 10.66.201.92 -p tcp --dport 1433 -j SNAT --to-source 10.105.243.140
echo 1 > /proc/sys/net/ipv4/ip_forward
3.看下效果
用云服务器的外网ip成功连上了sqlserver实例~~
这边用同样的方式再做一个mongodb的映射
1.测试环境
服务器还用之前的,内网ip:10.105.243.140 外网ip:111.231.25.24
mongodb一台,内网地址:10.66.203.190:27017
2.使用iptables做端口映射
iptables -t nat -A PREROUTING -d 10.105.243.140 -p tcp --dport 27017 -j DNAT --to-destination 10.66.203.190:27017
iptables -t nat -A POSTROUTING -d 10.66.203.190 -p tcp --dport 27017 -j SNAT --to-source 10.105.243.140
echo 1 > /proc/sys/net/ipv4/ip_forward
3.看下效果
在235这台服务器上使用转发服务器的外网ip成功连上了mongodb实例
简单示例(二):
官方也给出了一个映射方法,使用 SSH 工具(如 SecureCRT 或 Putty 等)配置端口映射https://cloud.tencent.com/document/product/238/4191
这边用xshell来实现下官方文档中给的这种方式
1.测试环境
服务器还用之前的,内网ip:10.105.243.140 外网ip:111.231.25.24
sqlserver实例也是之前的,内网地址10.66.201.92:1433
2.建立转发
先用xshell连上,然后在这个会话的属性中选择隧道,设置一个本地监听的端口和云数据库的地址
这里本地设置监听6666端口
3.看下效果
这次使用SSMS连接下
使用本地地址加端口6666成功连上了实例
简单示例(三):
windows服务器也有端口转发功能,接下来试下windows的转发mongodb
1.测试环境
mongodb还用之前的,内网地址:10.66.203.190:27017
windows服务器一台,内网ip:10.105.96.52 外网ip:115.159.116.78
2.建立转发
netsh interface portproxy add v4tov4 listenaddress=10.105.96.52 listenport=27017 connectaddress=10.66.203.190 connectport=27017
3.看下效果
在235这台服务器上使用转发服务器的外网ip成功连上了mongodb实例
2018-1-17 06:22 上传