You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一局域网下从其他Windows 11电脑连接Docker部署的SQL Server 2022失败求助

同一局域网下从其他Windows 11电脑连接Docker部署的SQL Server 2022失败求助

我来帮你一步步排查问题,先梳理下你的现状:同一局域网的另一台Windows 11电脑能ping通、RDP连接你的Docker主机,但就是没法用SSMS连Docker里的SQL Server 2022,你已经做了关防火墙、启用TCP/IP、允许远程连接这些操作,咱们再往下深挖下:

第一步:确认Docker端口映射是否正确监听所有网卡

你用的启动命令里-p 1433:1433理论上是把主机的1433端口映射到容器的1433端口,但要确认这个映射是监听所有网卡(包括局域网IP),而不是只监听本地回环(127.0.0.1):

  • 在你的Docker主机上打开命令提示符,运行:netstat -ano | findstr :1433,看看输出里是不是有0.0.0.0:1433或者[::]:1433(代表监听所有网卡)
  • 也可以用Docker命令验证:docker inspect sqlserver2022 | findstr "Ports",正常输出应该是"1433/tcp": [{"HostIp": "0.0.0.0", "HostPort": "1433"}]
    • 如果这里HostIp是127.0.0.1,那局域网其他电脑就访问不了,这时候去Docker Desktop的「设置」->「资源」->「网络」里,检查有没有限制只允许本地连接,确保开启了局域网访问权限

第二步:检查容器内SQL Server的配置是否正常

有时候容器启动时可能没正确加载TCP/IP配置,咱们进容器确认下:

  1. 运行命令进入容器:docker exec -it sqlserver2022 bash
  2. 检查TCP/IP是否启用:/opt/mssql/bin/mssql-conf show network.tcpipenabled,输出应该是network.tcpipenabled = 1
  3. 确认监听端口是1433:/opt/mssql/bin/mssql-conf show network.tcpport,输出应为network.tcpport = 1433

第三步:测试局域网电脑到主机1433端口的连通性

在另一台电脑上打开命令提示符,运行telnet 你的主机局域网IP 1433(比如telnet 192.168.1.100 1433):

  • 如果能成功连接(窗口变成空白),说明网络通了,问题出在SSMS的连接参数上
  • 如果连接失败,那还是网络/端口映射的问题,回到第一步重新排查

第四步:确认SSMS的连接参数是否正确

用SSMS连接时注意这几点:

  • 服务器名称要填:你的主机局域网IP,1433(比如192.168.1.100,1433),如果是默认1433端口,也可以直接填IP,但写上端口更保险
  • 身份验证选「SQL Server身份验证」,登录名是sa,密码是你设置的MyPass
  • 另外要注意:SQL Server默认要求强密码(大小写+数字+特殊字符),如果你的MyPass太简单,容器可能没正常启动!可以用docker logs sqlserver2022查看容器日志,看看有没有密码不符合要求的报错

关于你最后一个问题:能不能只指定IP不用端口?

其实如果你的容器是映射到主机的默认1433端口,且主机的1433端口没有被其他程序占用,SSMS是可以直接填主机局域网IP而不用加端口的——因为SSMS会默认尝试连接1433端口。但为了避免端口冲突(比如主机上还有其他SQL Server实例占用1433),还是建议加上端口更稳妥。

备注:内容来源于stack exchange,提问作者Leon Tanko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:09:38