SQLServer连不上服务器,11001错了,说默认不允许远程连接,还提到TCP提供程序主机识别不了,要怎么修复支持远程连接呢
- 问答
- 2026-01-11 02:01:53
- 3
(来源:微软官方文档 SQL Server 配置管理器说明)当你看到错误代码11001,并且提示“默认情况下,SQL Server 不允许远程连接”以及“TCP 提供程序,错误: 0 - 不知道这样的主机”时,这通常不是一个单一的问题,而是好几个问题凑在一起了,你别慌,我们一步一步来,把这些结一个一个解开,这个错误基本上是在说两件事:第一,你的SQL Server本身没开远程连接这个“门”;第二,你的客户端电脑根本找不到你所说的那台服务器“主机”在哪里,下面我就把解决步骤给你捋清楚。
(来源:SQL Server 联机丛书 - 启用远程连接)第一步,也是最根本的一步,你得去服务器那台电脑上,确保SQL Server已经允许别人从远程连过来了,这个设置不是在SQL Server Management Studio里面,而是在SQL Server的配置工具里,你点击电脑的“开始”菜单,找到“Microsoft SQL Server”这个文件夹,里面应该有一个叫“SQL Server 配置管理器”的程序,把它打开,打开之后,在左边栏里,找到“SQL Server 网络配置”这一项,点开它下面的小箭头,你会看到比如“MSSQLSERVER的协议”这样的东西(如果你的SQL Server实例是默认实例,通常就叫这个名),选中它,然后看右边的主窗口,里面会有一个叫“TCP/IP”的协议,你检查一下它的状态,如果显示是“已禁用”,那就对了,问题就在这儿,你对着“TCP/IP”这几个字点右键,选择“启用”,光启用还不够,你还得双击它打开属性,在属性窗口里,有个“IP地址”的选项卡,点进去,你会看到一长串IP地址的列表,比如IP1、IP2一直到IPAll,你需要滚动到最下面,找到“IPAll”这一部分,这里有一个非常重要的设置叫“TCP端口”,如果这里是空的,或者不是标准的1433,你最好把它填上“1433”(这是SQL Server默认的端口号),如果你为了安全自定义了端口,那就填你自定义的那个端口号,做完这一步,先点“应用”,再点“确定”。
(来源:SQL Server 故障排除指南 - 服务重启)注意了,到这里改动还没生效呢!你必须重启SQL Server服务,它才能读取这个新的配置,怎么重启呢?还是在SQL Server配置管理器里,左边栏找到“SQL Server服务”,选中它,右边窗口就会列出你电脑上的所有SQL Server服务实例,找到你刚才修改的那个实例(比如SQL Server (MSSQLSERVER)),对着它点右键,选择“重新启动”,等它重启完毕,服务器端的这个“开门”设置才算真正完成。

(来源:Windows Server 防火墙文档)好,门现在开了,但你可能还遇到“不知道这样的主机”这个错误,这常常是因为防火墙把这扇门给堵住了,所以第二步,你得去检查服务器电脑上的Windows防火墙,给SQL Server开个例外,在服务器电脑上,打开“控制面板”,找到“Windows Defender 防火墙”(或者简称“Windows防火墙”),点击左侧的“高级设置”,会弹出一个“高级安全Windows防火墙”的窗口,在左边选中“入站规则”,然后在右边操作栏里点击“新建规则…”,规则类型选择“端口”,然后下一步,选择“TCP”,并在“特定本地端口”那里输入你刚才设置的端口号,1433”,再下一步,选择“允许连接”,再下一步,根据你的网络环境选择什么时候应用这个规则(domain, private, public 全选上比较省事),最后一步,给你这个规则起个名字,SQL Server Port 1433”,点完成,这样,防火墙就知道对这个端口的访问是安全的,会放行。
(来源:网络基础 - 主机名解析)第三,也是最容易让人困惑的一步,主机识别不了”,这句话的意思是,你的客户端电脑在网络上找不到名叫“某某某”的服务器,这可能有好几种情况,最简单的情况是你用错了服务器名,你是不是直接用电脑名来连接的?比如你的服务器电脑名叫“SERVER-PC”,那连接字符串里服务器地址就应该是“SERVER-PC”,如果你在同一局域网里,这样通常没问题,但如果你是在家想连公司的服务器,那就不行了,你得用公司的公网IP地址,更常见的问题是,即使在内网,有时候电脑名解析也会出问题,一个非常有效的测试方法是,别用电脑名了,你直接试试用服务器的内网IP地址连接,你到服务器电脑上,在命令提示符里输入“ipconfig”,找到“IPv4 地址”那一行,记下那个数字,192.168.1.100”,然后回到你的客户端电脑,在SQL Server Management Studio的服务器名称那里,就输入这个IP地址,192.168.1.100”或者“192.168.1.100,1433”(如果端口不是1433,逗号后面就跟上你的端口号),如果能连上,那就说明是主机名解析的问题。

(来源:SQL Server 连接字符串参考)对于主机名解析问题,除了用IP地址,你还可以尝试在服务器的hosts文件里做映射,但这通常比较麻烦,更根本的可能是你们网络的DNS服务有问题,导致电脑名无法被正确解析成IP地址,这个就需要网络管理员来解决了,请再次确认,你在客户端输入的服务器的电脑名或IP地址,一个字母一个数字都不能错,很多时候错误就是这么产生的。
(来源:微软支持社区 - SQL Server 浏览器服务)还有一个容易被忽略的点,如果你的SQL Server没有使用默认的1433端口,而是用了其他端口(比如1443),并且你也没有在连接时显式地指定这个端口号(就像上面写的用逗号加端口号那样),那么你可能还需要确保服务器上的“SQL Server 浏览器”服务是运行状态的,这个服务的作用就是告诉来连接的客户端:“嘿,我这个SQL Server实例没在1433上,你真正要找的端口是XXXX”,你回到SQL Server配置管理器的“SQL Server服务”里,找到“SQL Server 浏览器”这个服务,右键点击,如果它没启动,就选择“启动”,并把它设置为“自动”启动,这样以后就不用管了。
解决11001错误的流程就是:1. 服务器启用TCP/IP协议并指定端口,2. 重启SQL Server服务使配置生效,3. 在服务器防火墙开放对应的端口,4. 在客户端尝试用服务器的IP地址而非电脑名进行连接,以排除主机名解析问题,5. 如果用了非默认端口,确保SQL Server浏览器服务已启动或连接时显式指定端口,按照这个顺序排查,绝大多数情况下问题都能得到解决。
本文由芮以莲于2026-01-11发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/78414.html
