SQL Server 遠端連線失敗常因 Windows 防火牆封鎖相關連接埠。提供一個批次檔 (.bat),以管理員權限執行即可一次開啟所有 SQL Server 相關連接埠 (含資料庫引擎、SSAS、SSRS、Browser Service、RPC 等)。
OpenSqlPorts.bat)@echo ========= SQL Server Ports ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer"
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection"
@echo Enabling conventional SQL Server Service Broker port 4022
netsh firewall set portopening TCP 4022 "SQL Service Broker"
@echo Enabling Transact-SQL Debugger/RPC port 135
netsh firewall set portopening TCP 135 "SQL Debugger/RPC"
@echo ========= Analysis Services Ports ==============
@echo Enabling SSAS Default Instance port 2383
netsh firewall set portopening TCP 2383 "Analysis Services"
@echo Enabling SQL Server Browser Service port 2382
netsh firewall set portopening TCP 2382 "SQL Browser"
@echo ========= Misc Applications ==============
@echo Enabling HTTP port 80
netsh firewall set portopening TCP 80 "HTTP"
@echo Enabling SSL port 443
netsh firewall set portopening TCP 443 "SSL"
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh firewall set portopening UDP 1434 "SQL Browser"
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE
OpenSqlPorts.bat。netsh advfirewall@echo off
REM 範例:新增輸入規則允許 TCP 1433
netsh advfirewall firewall add rule name="SQL Server 1433" dir=in action=allow protocol=TCP localport=1433
REM 批次新增多條規則可撰寫迴圈或 PowerShell 腳本
netsh firewall 為舊版指令,在新版 Windows 可能提示已淘汰但仍相容;生產環境建議改用 advfirewall 或群組原則統一部署。
| 服務/功能 | 協定 | 連接埠 | 說明 |
|---|---|---|---|
| Database Engine (預設實例) | TCP | 1433 | 主要客戶端連線 |
| DAC (專用管理連線) | TCP | 1434 | 緊急管理連線 |
| Service Broker | TCP | 4022 | 訊息傳遞 |
| TSQL Debugger / RPC | TCP | 135 | 遠端偵錯/DCOM |
| Analysis Services | TCP | 2383 | OLAP 服務 |
| SQL Browser | TCP/UDP | 2382 / 1434 | 實例列舉/發現 |
| HTTP/HTTPS (Reporting Services) | TCP | 80 / 443 | Web 入口/報表 |