外网如何访问内网的数据库?

li1033537552 2014-10-22 12:55:41
在SQLEXPRESS的协议中,启用了TCP/IP,IP1和IP2的端口都是1433,
MSEXORESS的协议中,TCP/IP是自动启动的,所有的TCP端口都是1433,
本地防火墙通过控制面板关闭掉了,
数据库自身是允许混合登陆的,允许远程登陆的,
在TP-Link TL-H29R路由器中,是通过PPPOE拨号上网的,
IP映射是直接开启的DMZ主机,将本机IP直接暴露给广域网,也对1433,80,445端口做了映射。
SQL服务,开启了SQL SERVER(SQLEXPRESS),SQL SERVER(MSSQLEXPRESS),SQL SERVER Analysis Server(MSSQLSERVER),SQL Full-text Filter Daemon Launcher(MSSQLSERVER),SQL Server Integration Services 10.0。

在本机,通过127.0.0.1,192.168.18.100,均能正常登陆数据库,但通过广域网IP却无法登陆,提示如下,请问该如何解决呢?


在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP 提供程序, error: 0 - 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。) (.Net SqlClient Data Provider)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=10060&LinkId=20476

------------------------------
错误号: 10060
严重性: 20
状态: 0


------------------------------
程序位置:

在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci, IServerType server)
在 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
starseeker7 2014-10-22
  • 打赏
  • 举报
回复
首先你需要知道问题大部分ADSL是内网,,, 就是如果是电信,那么电信所有用户就会被分割为一个一个的内网,他们之间互相不通 这一点你可以通过百度查询你的自己IP,对比你拨号后电信分配给你的IP是不相同的,你就可以知道了 想要访问外网?找电信租用公共IP吧,小贵就是了
Neo_whl 2014-10-22
  • 打赏
  • 举报
回复
看看有没有 配置工具->外围应用配置器 tcp/ip 和远程连接是否开启
还在加载中灬 2014-10-22
  • 打赏
  • 举报
回复
设置 “数据库自身是允许混合登陆的,允许远程登陆的” 这些 重启过服务吗?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧