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

WSL中MS SQL Server实例名无法解析的问题排查求助

排查WSL Ubuntu环境下MS SQL实例名端口解析问题的方向
  • 检查SQL Server Browser服务状态
    实例名到端口的解析完全依赖SQL Server Browser服务,先确认Windows主机上的这个服务是否正常运行:

    • 打开Windows的services.msc,找到SQL Server Browser,确保状态是“正在运行”,启动类型设为“自动”
    • 或者用PowerShell快速操作:
      # 查看服务状态
      Get-Service SQLBrowser
      # 启动服务
      Start-Service SQLBrowser
      # 设置为自动启动
      Set-Service SQLBrowser -StartupType Automatic
      
  • 验证UDP 1434端口的连通性
    SQL Server Browser通过UDP 1434端口返回实例对应的端口号,WSL到Windows主机的这个端口可能被防火墙拦截:

    • 先在WSL里安装netcat工具:sudo apt install netcat
    • 测试连通性:nc -u -zv someserver 1434
    • 如果不通,去Windows防火墙添加入站规则:允许UDP 1434端口,或者直接允许SQL Server Browser程序的入站连接
  • 排查WSL网络模式问题
    WSL2默认用NAT网络,可能存在主机名解析或端口转发的问题:

    • 试试用Windows主机的实际IP替代someserver,比如server = '192.168.x.x\someinstance',看能否正常解析实例
    • 若NAT模式问题无法解决,可切换到桥接模式:
      1. 在Windows的“Hyper-V管理器”里创建一个虚拟交换机(桥接物理网卡)
      2. 在用户目录下创建.wslconfig文件,添加以下配置:
        [wsl2]
        networkMode=bridged
        vmSwitch=你的虚拟交换机名称
        
      3. 重启WSL:wsl --shutdown,再重新打开Ubuntu
  • 确认WSL中ODBC驱动的状态
    确保WSL里的ODBC驱动安装正确且版本兼容:

    • 查看已安装的ODBC驱动:odbcinst -q -d,确认输出里有ODBC Driver 17 for SQL Server
    • 若驱动缺失或版本过旧,重新安装最新版:
      curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
      sudo curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
      sudo apt update
      sudo ACCEPT_EULA=Y apt install msodbcsql17
      
  • 检查SQL Server实例的TCP/IP配置
    确认目标实例的TCP/IP协议已启用且端口配置正确:

    • 在Windows上打开SQL Server配置管理器,找到SQL Server网络配置 -> 针对someinstance的协议 -> TCP/IP,确保状态为“已启用”
    • 双击TCP/IP,切换到“IP地址”选项卡,确认实例监听的端口是1435(和你描述的一致)
    • 用netstat -ano | findstr :1435检查Windows主机上1435端口是否被其他服务占用

内容的提问来源于stack exchange,提问作者jan-seins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:01:18