如何使用公网静态IP和端口号通过互联网连接远程SQL Server数据库
排查解决步骤
1. 验证公网端口可达性
- 先不用SQL客户端测试,使用
telnet 你的公网IP 1433命令或者端口扫描工具,测试公网IP的1433端口是否开放。如果端口不通,优先排查公网侧和端口转发规则问题。 - 运营商普遍会封禁1433、3389这类高危默认端口,可直接联系运营商确认1433端口是否被封堵。如果被封,可将SQL Server对外映射端口改为非默认端口(如14330),端口转发规则设置为外部端口14330映射到内网SQL Server主机IP的1433端口,后续连接时服务器地址填写
公网IP,14330即可。 - 确认你使用的公网IP是宽带的真实公网IP:在SQL Server所在主机上搜索“公网IP查询”,对比查询结果和你使用的公网IP是否一致。如果运营商分配的是10/100/172.16~31开头的内网IP,属于运营商级NAT,自行配置端口转发无效,需要联系运营商申请公网IP。
2. 修正客户端连接配置
- 你当前报错的提供程序是Named Pipes Provider,说明客户端默认优先尝试命名管道协议连接公网服务,必然会失败。连接时强制指定TCP协议,服务器名称填写
tcp:公网IP,端口号,即可强制走TCP协议连接。 - 不要在SQL Server所在的局域网内用公网IP测试连接,绝大多数家用路由器不支持NAT回环,内网设备无法通过公网IP访问内网服务,需要使用不在同一局域网的设备(如手机开流量热点,测试设备连热点)验证公网连接。
3. 核对已配置规则
- 检查Windows防火墙入站规则:TCP 1433端口的允许规则作用域为“任何IP”,不要仅限制本地子网访问。
- 核对端口转发规则:内网IP为SQL Server主机的静态本地IP(不要用DHCP自动分配的动态IP,避免IP变动导致转发失效),内网端口为1433,协议选择TCP,规则已启用。
- 如果使用的是SQL Server命名实例,除1433端口外还需添加UDP 1434端口的端口转发规则,或连接时直接指定端口号、不填写实例名。
内容的提问来源于stack exchange,提问作者Rba Egn
相关产品推荐
相关产品推荐

