通过 ADSL 路由器连接到 SQL Server 2008

通过 ADSL 路由器连接到 SQL Server 2008

我正在尝试通过 ADSL 调制解调器/路由器通过 Internet 连接到 SQL Server 2008 实例。我已经配置了路由器以将端口 TCP 1433 和 UDP 1434 转发到服务器的 IP。我还禁用了服务器上的 Windows 防火墙。我可以使用 SQL Server 身份验证本地连接到实例,但无法通过 Internet 连接,因为它失败并显示错误消息:

错误:Microsoft SQL Server Native Client 10.0:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器。检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。有关更多信息,请参阅 SQL Server 联机丛书。Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:登录超时已过期。

我真的不知道哪里出了问题。如能得到任何帮助我将不胜感激。

答案1

我可能不是唯一一个这么说的人,但以这种方式将服务器暴露给一般互联网是一种馊主意。考虑使用某种 VPN 软件,它不仅更加安全,而且端口转发设置也更加简单。(您只需通过调制解调器将单个端口路由到服务器以进行 VPN 连接,其他一切都将通过该端口进行)。

查看http://www.openvpn.net寻找一个不错的、免费的 VPN 解决方案。

答案2

这可能是因为 SQL Server 没有监听 TCP/IP。

SQL Server 的默认安装将接受任何传入连接。这包括同一 LAN 上的其他计算机,以及来自 Internet 的计算机(实际上是指来自 LAN 上的路由器的流量)。

您使用SQL Server 配置管理器启用 SQL Server 将侦听的其他协议(例如 TCP/IP):

替代文本

此后,您必须重新启用(旧的)默认端口1433以供使用: 替代文本

我会用微软系统内部 TCPView检查 SQL Server 是否最后监听您期望的端口: 替代文本

这是微软新默认已损坏战略。

答案3

我建议您打开以下端口;

TCP 1433(SQL 服务器)、TCP 1434(SQL 管理员)、TCP 4022(SQL 服务代理)、TCP 135(SQL 调试器/RPC)、TCP 2383(分析服务)、TCP 2382 和 UDP 1434(SQL 浏览器),另外可能还有 TCP 80 和 TCP 443(如果您正在进行任何“网络”操作)。

答案4

使用网络扫描仪地图检查端口 1433 TCP 和 1434 UDP(只有在使用命名实例时才需要这个端口)是否确实对 Internet 开放。如果端口被标记为关闭或被过滤,则可能是由于:

  • 拥有运行某种防火墙的防病毒/安全套件。
  • 路由器的端口转发/重定向配置不正确或被禁用。

附言:SmallClanger 关于使用 VPN 的建议非常好。

相关内容