變更預設連接埠能降低自動掃描攻擊風險,但非絕對防禦,需配合防火牆、驗證強化等纵深措施。
| 服務 | 協定/埠口 | 用途 |
|---|---|---|
| Database Engine | TCP 1433 | 客戶端連線 (可變更) |
| Database Engine | UDP 1434 | SQL Browser 回應實例埠口查詢 |
| SQL Agent | TCP 1625, 1640 | 代理程式服務 |
| 查詢分析器/SSMS | TCP 1601 | 舊版工具連線轉發 |
MSSQLSERVER 的 TCP/IP)54321) → TCP Dynamic Ports 清空' 登錄路徑 (實例名稱視安裝而定)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
' 修改 TcpPort 值為新埠口 (字串值)
' 刪除 TcpDynamicPorts 值
| 方式 | 語法/設定 |
|---|---|
| 連線字串 | Server=192.168.1.100,54321;Database=MyDB;... |
| SSMS 連線對話框 | 伺服器名稱:192.168.1.100,54321 或 192.168.1.100:54321 |
| ODBC DSN | 伺服器欄位填 192.168.1.100,54321 |
| sqlcmd | sqlcmd -S 192.168.1.100,54321 -U user -P pwd |
Server\Instance),Browser 會回應實際 TCP 埠口TCP/IP 屬性 → 隱藏執行個體 = Yes
SELECT @@SERVERNAME、枚舉 API 不會顯示此實例' Windows 防火牆範例
netsh advfirewall firewall add rule name="SQL Server 54321" dir=in action=allow protocol=TCP localport=54321
' 刪除舊 1433 規則
netsh advfirewall firewall delete rule name="SQL Server 1433" protocol=TCP localport=1433
☐ 組態管理員 TCP/IP 啟用、固定埠口設定正確
☐ SQL Server 服務已重啟
☐ netstat -an 見新埠口 LISTENING
☐ 防火牆放行新埠口、封鎖 1433 (可選)
☐ 客戶端連線字串/ODBC/DSN 全數更新
☐ 應用程式連線測試通過
☐ SQL Browser 狀態符合策略 (啟用/停用)
☐ 稽核記錄驗證無異常登入嘗試
變更埠口是安全纵深的一環,**核心防線仍是:強密碼、最小權限、防火牆白名單、稽核審計、定期修補**。