【发布时间】:2011-02-01 17:02:49
【问题描述】:
我们在防火墙(WatchGuard XTM 2 系列)和网络交换机后面有一个小型网络。在我们的网络上,我们有多个 SQL 服务器实例,但我希望能够从我们的网站远程访问其中的 1 个。我们有一个来自 ISP 的静态 IP 地址,然后网络上的所有机器都有一个本地分配的动态 IP 地址。当尝试从我们的网络外部连接到数据库时,如何将请求定向到正确的机器/SQL 实例?它是我的连接字符串中的参数还是我的防火墙中的某个参数?
需要排除的几件事:
1) 防火墙允许从网站访问我们的网络。我添加了站点的 IP 并打开了 1433 端口。此外,在尝试连接和监控防火墙时,没有出现异常,就像我添加正确的 IP 地址之前一样。
2) SQL 服务器上的远程连接已设置并启用。我已经阅读了大量有关远程连接的信息,并且我确信它已正确设置。
我目前在我的网站上收到此错误消息:
与网络相关或特定于实例的 建立时发生错误 连接到 SQL Server。服务器 未找到或无法访问。 验证实例名称是否为 正确,并且 SQL Server 是 配置为允许远程 连接。 (提供者:TCP 提供者, 错误:0 - 连接尝试失败 因为关联方没有 一段时间后正确响应 时间,或建立连接失败 因为连接的主机未能 回复。)
【问题讨论】:
-
这更像是一个 ServerFault.com 问题
-
同意ck。基本上,您的网站现在指向您的外部 IP。正如您所说,您的服务器在内部使用动态 IP。因此,您的防火墙需要这样做:到端口 1433 的传入连接 -> 转发到内部 SQL Server。如果防火墙也是您的 DHCP 服务器,那么它应该能够执行此转发。否则,您可能需要为数据库服务器考虑静态 IP,以便可以使用静态转发设置防火墙到正确的内部 IP。一个好的系统管理员应该能够在很短的时间内为您设置好这个。祝你好运!
-
还有一个注意事项。在不了解详细信息的情况下,您是否意识到将防火墙上的入站端口开放到众所周知的 RFC 端口 (1433) 的潜在安全风险?希望您在您的 ISP 和防火墙之间建立隧道,或者已经实施了其他安全措施来防止其他人利用这个漏洞。
-
在此移动之前...将端口从 1433 更改为远离 1433,使用 1433 只是请求悲伤(它是已知的,因此是针对性的)
标签: sql-server-2008 firewall remote-connection