我试图通过ADSL调制解调器/路由器通过Internet连接到SQL Server 2008实例。 我已经configuration路由器将端口TCP 1433和UDP 1434转发到服务器的IP。 我也已经禁用了服务器上的Windows防火墙。 我可以使用SQL Server身份validation本地连接到实例,但无法通过Internet进行连接,因为它会失败并显示错误消息:
错误:Microsoft SQL Server Native Client 10.0:build立到SQL Server的连接时发生networking相关或实例特定的错误。 服务器没有find或不可访问。 检查实例名称是否正确以及是否将SQL Serverconfiguration为允许远程连接。 有关详细信息请参阅SQL Server联机丛书。Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:login超时过期。
我真的不知道什么是错的。 任何帮助,将不胜感激。
我可能不是唯一这样说的,但是用这种方式将服务器暴露给一般的互联网是一个坏主意 。 考虑某种VPN软件,它不仅会更安全,而且在端口转发设置方面你会更容易。 (你只需要通过调制解调器路由一个单一的端口到服务器的VPN连接和其他一切将通过该工作)。
这可能是因为SQL Server没有侦听TCP / IP。
SQL Server的默认安装将接受任何传入的连接。 这包括同一局域网上的其他机器以及互联网(这实际上意味着来自局域网路由器的stream量)。
您使用SQL Serverconfigurationpipe理器来启用SQL Server将侦听的其他协议(例如TCP / IP):

之后,您必须重新启用(旧)默认端口1433才能使用: 
我会使用Microsoft SysInternals TCPView来检查SQL Server是否最终在您期望的端口上侦听: 
这是微软新的默认策略的一部分。
我build议你打开下面的端口;
TCP 1433(SQL Server),TCP 1434(SQL Admin),TCP 4022(SQL Service Broker),TCP 135(SQLdebugging器/ RPC),TCP 2383(Analysis Services),TCP 2382和UDP 1434 80和TCP 443,如果你正在做任何“networking安全”。
使用像nMap这样的networking扫描程序来检查端口1433 TCP和1434 UDP(这个只需要你使用命名实例)是否确实对Internet开放。 如果端口被标记为closures或过滤,可能是由于:
PS:SmallClanger谈论使用VPN是一个非常好的build议。