問題背景
Azure 虛擬機器預設**關閉所有輸入埠**,SQL Server 預設埠 1433 自然無法連線。錯誤訊息通常為:「無法連線到伺服器」「逾時」或「網路路徑未找到」。
解決方案:Windows 防火牆新增輸入規則
- 開啟高階安全防火牆:Win+R →
WF.msc → Enter。
- 新建輸入規則:左側「輸入規則」右鍵 → 「新增規則」。
- 規則類型:選「連接埠」→ 下一步。
- 通訊協定與埠:
- 協定:TCP
- 特定本機連接埠:1433 (或你在 SQL Server 組態管理員設定的埠號)
- 動作:選「允許連線」→ 下一步。
- 進階可選「僅允許安全連線」(需 IPSec),一般環境選預設即可。
- 設定檔:勾選「公用」(**必選**,Azure VM 網路介面屬於公用設定檔) → 下一步。
- 名稱與描述:輸入
Allow SQL Server 1433 Inbound → 完成。
圖文對照






同步必做:SQL Server 組態管理員啟用 TCP/IP
- 開啟「SQL Server 組態管理員」。
- 「SQL Server 網路組態」→ 選對應執行個體 (預設
MSSQLSERVER) → 「TCP/IP」右鍵「啟用」。
- 右鍵「TCP/IP」→「屬性」→ 「IP Addresses」分頁 → IPAll 區段:
- TCP 動態連接埠:清空 (刪除預設值 0)。
- TCP 連接埠:輸入 1433。
- 重啟 SQL Server 服務 (`MSSQLSERVER`)。
驗證連線
本機或用戶端機器開啟命令提示字元:
telnet 1433
- 畫面只剩閃爍游標 → **埠已通**。
- 顯示「連線失敗」→ 檢查 Azure NSG (網路安全性群組) 是否也開放 1433 輸入規則、SQL Server 服務是否運行、埠號是否一致。
安全強化建議 (生產環境必做)
- 🔒 **修改預設埠**:將 1433 改為高位埠 (如 2433、51433),同步更新防火牆、NSG、連線字串。
- 🔒 **限制來源 IP**:防火牆規則「範圍」頁僅允許應用伺服器/跳板機 IP 段。
- 🔒 **強制加密連線**:SQL Server 組態管理員 → 「Flags」→ `ForceEncryption = Yes`,並部署有效憑證。
- 🔒 **停用 sa / 強密碼 / 登入稽核**:`ALTER LOGIN sa DISABLE;`、設定密碼原則、啟用登入失敗稽核。
- 🔒 **Azure NSG 雙層防護**:子網路/網卡層級 NSG 僅放行必要埠,拒絕其餘所有輸入。
總結
Azure VM 部署 SQL Server 網路不通,**90% 是防火牆/NSG 埠未開**。依循「Windows 防火牆開 1433 → SQL 組態管理員固定 1433 → NSG 開 1433 → telnet 驗證」四步驟,立即解決。生產環境請務必疊加「改埠、限 IP、加密、稽核」四層防護。