在 Windows Server 上部署 SQL Server 時,若啟用 Windows 防火牆,預設會封鎖所有入站連線,導致遠端無法連線資料庫。手動逐一新增 10+ 條入站規則既繁瑣又易遺漏。本文提供一支經測試可用的批次檔(.bat),可一次性開放 SQL Server 所有必要埠(含資料庫引擎、SSAS、SSRS、Browser Service、RPC 等),支援 SQL Server 2008 至 2019 所有版本。
| 埠號 | 協定 | 用途 |
|---|---|---|
| 1433 | TCP | 預設執行個體資料庫引擎 |
| 1434 | TCP | 專用管理員連線 (DAC) |
| 4022 | TCP | Service Broker |
| 135 | TCP | RPC / Transact-SQL 偵錯 |
| 2383 | TCP | Analysis Services (SSAS) 預設執行個體 |
| 2382 | TCP | SQL Server Browser Service |
| 80 | TCP | HTTP (Reporting Services / Web 服務) |
| 443 | TCP | HTTPS (SSL) |
| 1434 | UDP | SQL Server Browser 瀏覽按鈕 |
Open_SQL_Ports.bat,以系統管理員身分執行)@echo off
echo ==========================================
echo SQL Server 必要埠防火牆開放腳本
echo 適用:SQL Server 2008 / 2012 / 2016 / 2019
echo 需以系統管理員權限執行
echo ==========================================
REM 資料庫引擎核心埠
netsh advfirewall firewall add rule name="SQL Server (TCP 1433)" dir=in action=allow protocol=TCP localport=1433
netsh advfirewall firewall add rule name="SQL Admin Connection (TCP 1434)" dir=in action=allow protocol=TCP localport=1434
netsh advfirewall firewall add rule name="SQL Service Broker (TCP 4022)" dir=in action=allow protocol=TCP localport=4022
netsh advfirewall firewall add rule name="SQL Debugger/RPC (TCP 135)" dir=in action=allow protocol=TCP localport=135
REM Analysis Services
netsh advfirewall firewall add rule name="Analysis Services (TCP 2383)" dir=in action=allow protocol=TCP localport=2383
netsh advfirewall firewall add rule name="SQL Browser (TCP 2382)" dir=in action=allow protocol=TCP localport=2382
REM Web / SSL
netsh advfirewall firewall add rule name="HTTP (TCP 80)" dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name="HTTPS/SSL (TCP 443)" dir=in action=allow protocol=TCP localport=443
REM Browser Service UDP
netsh advfirewall firewall add rule name="SQL Browser (UDP 1434)" dir=in action=allow protocol=UDP localport=1434
REM 允許多播廣播回應 (Browser 服務枚舉)
netsh advfirewall set global multicastbroadcastresponse enable
echo.
echo 所有規則已新增完成!請在「高級安全性 Windows 防火牆」→「輸入規則」中確認。
pause
Open_SQL_Ports.bat。wf.msc(高級安全性 Windows 防火牆)→「輸入規則」確認規則已建立並啟用。localport 參數。netsh advfirewall(Windows Vista/Server 2008 以上支援),舊版 netsh firewall 已棄用,不建議使用。remoteip=10.0.0.0/8,192.168.0.0/16 參數)。telnet 1433 或 SSMS 遠端連線驗證。一鍵腳本讓繁瑣的防火牆配置變得標準化、可重複、可版控。建議將此腳本納入伺服器初始化自動化流程(Ansible/PowerShell DSC/SCCM),確保每台 SQL Server 節點防火牆策略一致合規。