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

如何从UTM虚拟机内的SSMS连接Mac上Docker部署的SQL Server?

解决UTM虚拟机内SSMS连接Mac Docker中SQL Server的问题

一、先验证网络连通性

  • 获取Mac的本地IP:在Mac终端执行 ipconfig getifaddr en0(无线网卡用en0,有线网卡用en1),得到类似 192.168.1.100 的地址
  • 在Windows虚拟机的命令提示符中执行 ping 192.168.1.100,如果不通:
    • 检查UTM虚拟机的网络设置:进入虚拟机配置-网络,选择「桥接」模式,接口选当前Mac正在使用的网卡(如Wi-Fi),重启虚拟机后再试

二、确认Docker SQL Server的端口映射

  • 执行 docker ps 查看容器的PORTS列,必须显示类似 0.0.0.0:1433->1433/tcp,这表示容器的1433端口已映射到Mac的1433端口
  • 如果没有映射,重新启动容器时添加端口映射参数:docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPass123!" -p 1433:1433 -d mcr.microsoft.com/mssql/server:latest(替换密码为你自己的强密码)

三、确保SQL Server允许远程连接

  • 进入SQL Server容器:docker exec -it <容器ID或名称> bash
  • 登录SQL Server:/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P <你的SA密码>
  • 执行以下SQL开启远程访问:
    EXEC sp_configure 'remote access', 1;
    RECONFIGURE;
    GO
    EXEC sys.sp_configure N'remote query timeout', N'600';
    RECONFIGURE WITH OVERRIDE;
    GO
    
  • 确保TCP/IP协议启用:执行 /opt/mssql/bin/mssql-conf set network.tcp_enabled on,然后重启容器 docker restart <容器ID或名称>

四、SSMS的正确连接参数

  • 服务器名称:填写 tcp:<Mac的本地IP>,1433,比如 tcp:192.168.1.100,1433(不要用Docker容器的内部IP,比如172.17.0.2,虚拟机无法直接访问Docker内部网段)
  • 身份验证:选择「SQL Server身份验证」
  • 登录名:SA
  • 密码:启动容器时设置的SA_PASSWORD

五、排查防火墙限制

  • Mac端:打开系统设置-网络-防火墙,点击「选项」,确认允许Docker相关进程的入站连接,或临时关闭防火墙测试连接
  • Windows虚拟机端:临时关闭Windows Defender防火墙的「专用网络」和「公用网络」选项,测试是否能连接

内容的提问来源于stack exchange,提问作者mage j lewis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:22:36