SQL Server服务器C放在客户公司,若要连接数据库,需要客户将IP地址加入授信列表。
由于公司没有静态IP,所以买了一个阿里云服务器B。
现在的目标是通过公司机器上的电脑A,连接阿里云服务器B,然后在服务器B上做端口转发,
从而连接到客户的SQL Server服务器C。
SQL Server用到两个端口:
TCP端口:1433
UDP端口:1434
实现步骤:
1、开放阿里云服务器的1433端口和1434端口。
先在阿里云控制台(注意不是服务器桌面),找到端口开放页面,开放TCP端口1433和UDP端口1434。
(大致路径:服务器实例详情---安全---防火墙)
(经测试,在服务器桌面系统内加入站规则是不行的。一定要在阿里云控制台添加才可以)
(我在服务器桌面系统也加了TCP 1433和UDP 1434的入站规则,具体有无作用,未做测试)
添加端口成功后,在一台能联网的电脑上,命令提示符输入以下命令,测试1433端口是否开放。
telnet 阿里云IP 1433
2、在阿里云服务器使用端口转发工具,添加端口转发。
使用下面两个工具任何一个均可
tcp mapping 下载地址 https://pc.qq.com/detail/11/detail_92571.html
PortMap 下载地址 https://www.jb51.net/softs/43874.html
添加1433端口的转发规则,输入端口为1433,输出IP为SQL Server服务器IP,输出端口为1433。
添加1434端口转发规则同上。
启用规则。
注意:若1433端口转发规则启用失败,可能是本机的对应端口被占用。
解决方法:打开服务,停止所有以SQL Server开头的服务,并设为手动启动。
3、在公司电脑上连接数据库。
在公司电脑A上打开SQL Server Management Studio,数据库IP填写阿里云IP,
用户名密码填写客户数据库用户名和密码,即可连接。
小插曲:
完成以上步骤后,在公司电脑上可以连接上客户数据库,但打开数据表列表时卡住了,鼠标圆圈一直在转动。
后来在阿里云数据库上打开SQL Server Management Studio连接客户数据库并打开数据表列表,测试正常,然后关闭。
再在本地电脑连接数据库,这时就可以正常打开数据表列表了。