同调制解调器下跨路由器的SQL Server连接串配置咨询
同Modem下跨路由器的SQL Server本地连接实现(无公网流量)
核心结论:完全可以在不经过公网的前提下完成连接。当前的连接失败本质是两台独立路由器的默认子网隔离、防火墙拦截导致的,并非跨路由就必须依赖公网通信——由于两台路由器都直连同一个调制解调器,本身处于同一本地链路层级。
连接失败的根本原因
- 家用路由器默认开启NAT地址转换与跨网段访问拦截:当设备分别接入两台独立路由器时,会被分配来自不同路由
DHCP服务的独立子网IP(例如第一台路由分配192.168.3.x网段、第二台路由分配192.168.5.x网段),跨子网的双向通信会被路由默认防火墙规则拦截,流量根本不会走到调制解调器甚至公网层面就被阻断。 - 部分路由器默认开启的AP隔离功能,会强制拦截非本网段的设备通信,即使两台路由直连同一个Modem也会触发拦截。
无公网流量的可落地配置方案
方案1:将二级路由器切换为桥接(AP)模式(推荐,改动最小)
该方案下所有设备和单一路由器下的访问体验完全一致,流量仅在本地链路转发,无公网出口:
- 为负责拨号的主路由器保留完整的WAN口配置,关闭二级路由器自身的
PPPoE拨号、DHCP服务 - 将连接Modem与二级路由器的网线,从二级路由器的WAN口改插到LAN口
- 配置完成后,所有接入两台路由器LAN口的设备,都会从主路由器获取同一子网的IP地址,和之前单一路由器下的网络环境完全一致,原有SQL Server连接串无需任何修改即可正常连接。
注意:该方案下需要保持SQL Server端的基础配置不变,即TCP/IP协议已启用、Windows防火墙已放行1433端口及SQL Server程序的入站规则,和单路由场景下的配置无差异。
方案2:保留双路由独立子网,配置静态路由打通本地访问
如果受布线、设备布局限制无法将二级路由改为AP模式,可通过静态路由规则实现两个子网的本地互访,全程流量不经过公网:
- 首先为运行SQL Server的目标计算机配置固定本地IP,关闭
DHCP动态IP分配,避免IP变动导致连接串失效 - 在开发机所在的路由器管理界面添加静态路由条目:将指向SQL Server所在子网的访问下一跳,设置为SQL Server所在路由器的LAN口网关IP
- 在SQL Server所在的路由器防火墙规则中,放行来自开发机子网对
1433端口的访问请求,关闭跨网段拦截规则 - 开发机应用内的连接串保持原有格式,仅需将服务器地址字段替换为SQL Server目标机的固定本地IP即可正常连接。
常见排查注意点
- 禁止两台路由器同时开启WAN口
PPPoE自动拨号,否则会形成双NAT层级,即使配置了静态路由也可能出现访问异常 - 确认SQL Server服务器的Windows系统防火墙已放行
1433端口及对应程序,网络层打通后系统层面的拦截依然会导致连接失败 - 如果使用SQL Server命名实例,需在目标机上保持
SQL Server Browser服务正常运行,无需调整连接串内的实例名配置
内容的提问来源于stack exchange,提问作者Ken Lim
相关产品推荐
相关产品推荐

