各类学习网站都没有详细而简单的提供一套完整远程解决方案。也由于其中涉及非软件开发知识。通过认真学习和实践,在这里给出完整全面的解决方案,以供有需要的网友参考研究。
(原创:唐飞 QQ:87671675 ,有更好建议的可留言,或者加QQ互相学习交流。)
从外网访问SQL数据库服务器
分四步论证逐一完成:
一、针对电信,联通,移动 宽带供应商的要求:
1、公网固定IP或拨号获得的公网动态ip(某些100开头的ip地址为私网ip将无法实现远程访问,只能用特殊域名工具绑定)。
2、公网动态ip 绑定的域名。
二、路由器的要求:做虚拟地址转发
1、外部 1433端口,内部1433端口 。绑定SQL服务器局域网内部ip 比如192.168.1.120,协议类型为:TCP。
2、无需开启DMZ。
3、DDNS 申请路由器支持的域名供应商提供的域名。在路由器中登录域名供应商要求的注册账号和密码。注意:一个注册账号在域名供应商那边可能支持多个域名名称。见下图2张。
4、补充,也可以无视第三步,因为现在TPLINK路由器厂商提供TPLINK ID,只要注册拥有ID,也可以凭借这个ID,创建多个域名,如下图。这样也就避开繁琐的花生壳域名操作
但是更换路由器可能会需要重新绑定路由器MAC与域名本身的链接。
三、客户端Debug文件夹,也就是要在外地使用的电脑的程序客户端的文件夹,其中连接数据库配置的文件的要求:
需要修改 server=服务器名\sqlexpress 改为:公网固定IP或域名,1433\sqlexpress。注意:域名和端口之间不是冒号,是逗号。不要弄错。这种写法放在局域网内部也能访问服务器。
四、服务器安装的SQLSERVER 2008 EXPRESS的配置
1、Native Clinet 客户端协议的TCP/IP 默认端口 为1433,不要随便改动。但是要手动设置“已启用”。
2、最重要的:SQLEXPRESS协议中,TCP/IP有好几个设置,只有设置IPALL中的TCP端口为1433才能实现远程访问数据库。(上面IP1-IP5设置了也没用)。见图
见下图:
服务器防火墙设置中 高级设置-入站规则 建立1433端口 为TCP类型。
至此广域网中的外网客户端程序需要完成上述4个要求的配置后,即可在任何有互联网的地方访问SQL服务器了。(如果没能访问,重启SQL服务或者服务器,路由器重启即可)
//下面针对本地局域网中的客户端与SQL服务器连接,在启用windows防火墙的情况下。配置相关规则。
假设服务器安装的是win7或者win10,那么防火墙中的设置:
高级设置-入站规则中创建 1434端口 类型为UDP。完成后,本地局域网客户端可突破服务器防火墙通过1434端口 与SQL服务器进行数据交换。