設定 Windows 防火牆以允許 SQL Server 存取

適用於:SQL Server - 僅限 Windows

防火牆系統有助於防止未經授權存取電腦資源。 如果防火牆已開啟但未正確設定,系統可能會封鎖針對 SQL Server 的連線嘗試。

若要透過防火牆存取 SQL Server 的執行個體,您必須在執行 SQL Server 的電腦上設定防火牆。 防火牆是 Microsoft Windows 的元件。 您也可以安裝其他廠商提供的防火牆。 本文討論 Windows 防火牆的設定方法,但其中的基本原則也適用於其他防火牆程式。

注意

本文提供防火牆設定的概觀,並會摘要說明 SQL Server 系統管理員感興趣的資訊。 如需防火牆的詳細資訊及授權防火牆資訊,請參閱防火牆文件集,例如 Windows 防火牆安全性部署指南

如果使用者熟悉如何管理 Windows 防火牆,且了解自己想要設置的防火牆設定有哪些,則可以直接前往更進階的文章:

基本防火牆資訊

防火牆的運作方式是檢查傳入的封包,並將這些封包與下列規則進行比較:

  • 封包符合規則所規定的標準,接著防火牆會將該封包傳遞給 TCP/IP 通訊協定,以進行更多處理。
  • 封包不符合規則所指定的標準。
    • 防火牆會接著捨棄該封包。若啟用了記錄,防火牆記錄檔中即會建立一個項目。

允許傳輸的清單是以下列其中一種方式填入:

  • 自動:當已啟用防火牆的電腦開始進行通訊時,防火牆就會在清單中建立項目,以便允許回應。 此回應會被視為要求的流量,且不需設定任何項目。

  • 手動:管理員設定防火牆的例外。 如此一來便可允許存取您電腦上指定的程式或連接埠。 在此情況下,當此電腦當做伺服器、接聽程式或對等運作時,它就會接受未經要求的內送傳輸。 必須設定完畢才能連線到 SQL Server。

選擇防火牆策略比單獨決定給定的通訊埠應該開啟或關閉更複雜。 為企業設計防火牆策略時,請務必考慮所有可用的規則和組態選項。 本文不會檢閱所有可能的防火牆選項。 我們建議您檢閱下列文件:

預設防火牆設定

規劃防火牆組態的第一個步驟是判斷作業系統之防火牆的目前狀態。 如果作業系統是從舊版升級,先前的防火牆設定可能已經保留下來。 群組原則或系統管理員都可以變更網域中的防火牆設定。

注意

開啟防火牆將會影響存取此電腦的其他程式,例如檔案及列印共用,以及遠端桌面連接。 調整防火牆設定之前,管理員應該考慮在電腦上執行的所有應用程式。

用於設定防火牆的程式

您可以使用 Microsoft Management Consolenetsh 來設定 Windows 防火牆設定。

  • Microsoft Management Console (MMC)

    [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元可讓您設定更多進階的防火牆設定。 這個嵌入式管理單元會以容易使用的方式呈現大部分防火牆選項,而且它會呈現所有防火牆設定檔。 如需詳細資訊,請參閱本文稍後的使用具有進階安全性的 Windows 防火牆嵌入式管理單元

  • netsh

    netsh.exe 為系統管理員工具,可透過命令提示字元或批次檔來設定或監視 Windows 電腦。 您可以使用 netsh 工具,藉此將您輸入的內容命令導向至適當的協助程式,如此一來協助程式便會執行該命令。 協助程式是可用來擴充功能的動態連結程式庫 (.dll) 檔案。 協助程式可設定、監視及支援一或多個服務;提供公用程式;或為 netsh 工具提供通訊協定。

    所有支援 SQL Server 的作業系統都具備防火牆協助程式。 Windows Server 2008 還具備進階防火牆協助程式,稱為 advfirewall。 本文所述的許多組態選項都可以使用 netsh 進行設定。 例如,在命令提示字元中執行下列指令碼,即可開啟

    netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT
    

    針對進階安全性協助程式使用 Windows 防火牆的類似範例:

    netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport = 1433 remoteip = localsubnet profile = DOMAIN
    

    如需有關 netsh的詳細資訊,請參閱下列連結:

  • PowerShell

    請參閱下列為 SQL Server 預設執行個體及 SQL Server Browser 服務開啟 TCP 連接埠 1433 和 UDP 連接埠 1434 的範例:

    New-NetFirewallRule -DisplayName "SQLServer default instance" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow
    New-NetFirewallRule -DisplayName "SQLServer Browser service" -Direction Inbound -LocalPort 1434 -Protocol UDP -Action Allow
    

    如需更多範例,請參閱 New-NetFirewallRule

  • 若為 Linux

    在 Linux 上,您也必須開啟與您必須存取之服務關聯的連接埠。 不同的 Linux 散發套件與不同的防火牆各有自己的程序。 請參閱 Red Hat 上的 SQL ServerSUSE 上的 SQL Server 兩個範例。

SQL Server 使用的連接埠

下列表格可協助您識別 SQL Server 所用的連接埠。

資料庫引擎使用的連接埠

根據預設,SQL Server 使用的一般連接埠和相關聯的資料庫引擎服務為:TCP 143340221351434、UDP 1434。 下表會詳細說明這些連接埠。 具名執行個體會使用動態連接埠

下表列出了資料庫引擎常用的連接埠。

案例 連接埠 註解
透過 TCP 執行的預設執行個體 TCP 通訊埠 1433 允許通過防火牆最常見的連接埠, 適用於資料庫引擎預設安裝的常式連線,或適用於作為電腦上唯一執行之執行個體的具名執行個體。 (具名執行個體有特殊考量。請參閱本文稍後的動態連接埠說明。)
含預設連接埠的具名執行個體 此 TCP 連接埠是在資料庫引擎啟動時所決定的動態連接埠。 請參閱下方動態連接埠一節的討論。 當您使用具名執行個體時,SQL Server Browser 服務可能會需要 UDP 連接埠 1434。
含固定連接埠的具名執行個體 管理員所設定的通訊埠編號。 請參閱下方動態連接埠一節的討論。
專用管理員連接 TCP 通訊埠 1434 (預設執行個體)。 其他通訊埠則用於具名執行個體。 請檢查錯誤記錄檔,以取得通訊埠編號。 專用管理員連接 (DAC) 的遠端連線預設不會啟用。 若要啟用遠端 DAC,請使用介面區組態 Facet。 如需詳細資訊,請參閱< Surface Area Configuration>。
SQL Server Browser 服務 UDP 通訊埠 1434 SQL Server Browser 服務會接聽連入具名執行個體的連線。

此服務會為用戶端提供可對應至該具名執行個體的 TCP 連接埠號碼。 通常來說,只要使用資料庫引擎的具名執行個體,SQL Server Browser 服務就會啟動。 若用戶端設定為連線至具名執行個體的特定連接埠,就不需要使用 SQL Server Browser 服務。
含 HTTP 端點的執行個體。 可以在建立 HTTP 端點時指定。 預設值為 TCP 通訊埠 80 (用於 CLEAR_PORT 傳輸) 和 443 (用於 SSL_PORT 傳輸)。 用於透過 URL 進行 HTTP 連接。
含 HTTP 端點的預設執行個體 TCP 通訊埠 443 用於透過 URL 進行 HTTPS 連接。 HTTPS 是使用傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)) 的 HTTP 連線。
Service Broker TCP 通訊埠 4022。 若要確認使用的通訊埠,請執行下列查詢:

SELECT name, protocol_desc, port, state_desc

FROM sys.tcp_endpoints

WHERE type_desc = 'SERVICE_BROKER'
SQL Server Service Broker 沒有預設連接埠,線上叢書範例使用的是傳統組態。
資料庫鏡像 管理員所選擇的通訊埠。 若要判斷此通訊埠,請執行下列查詢:

SELECT name, protocol_desc, port, state_desc FROM sys.tcp_endpoints

WHERE type_desc = 'DATABASE_MIRRORING'
資料庫鏡像沒有預設連接埠,不過線上叢書範例使用的是 TCP 連接埠 5022 或 7022。 請務必避免中斷使用中的鏡像端點,尤其是在具有自動容錯移轉的高安全性模式中。 您的防火牆組態必須避免中斷仲裁。 如需詳細資訊,請參閱指定伺服器網路位址 (資料庫鏡像)
複寫 SQL Server 的複寫連線會使用一般的資料庫引擎連接埠 (TCP 連接埠 1433 為預設執行個體)

複寫快照集的 Web 同步處理和 FTP/UNC 存取需要在防火牆上開啟更多連接埠。 為了將初始資料和結構描述從某個位置傳送至另一個位置,複寫可能會使用 FTP (TCP 通訊埠 21)、透過 HTTP 同步處理 (TCP 通訊埠 80) 或檔案共用。 檔案共用會使用 UDP 連接埠 137 和 138,以及 TCP 連接埠 139 (如果搭配使用 NetBIOS)。 檔案共用使用 TCP 通訊埠 445。
若是透過 HTTP 進行同步,複寫會使用 IIS 端點 (可設定;預設為連接埠 80),但 IIS 處理序會透過標準連接埠 (預設執行個體為 1433) 連線至後端 SQL Server。

使用 FTP 進行 Web 同步處理時,FTP 傳輸會在 IIS 和 SQL Server 發行者之間進行傳輸,而非在訂閱者和 IIS 之間。
Transact-SQL 偵錯工具 TCP 通訊埠 135

請參閱「 通訊埠 135 的特殊考量

可能也需要「 IPsec 」例外。
如果使用的是 Visual Studio,您也必須在 Visual Studio 主機電腦上將 Devenv.exe 新增至 [例外狀況] 清單並開啟 TCP 連接埠 135。

如果使用的是 Management Studio,您也必須在 Management Studio 主機電腦上將 ssms.exe 新增至 [例外狀況] 清單並開啟 TCP 連接埠 135。 如需詳細資訊,請參閱在執行 Transact-SQL 偵錯工具之前設定防火牆規則

如需了解為資料庫引擎設定 Windows 防火牆的逐步指示,請參閱設定 Windows 防火牆以供資料庫引擎存取

動態連接埠

具名執行個體 (包含 SQL Server Express) 預設會使用動態連接埠。 資料庫引擎每次啟動都會識別可用的連接埠,並使用該連接埠號碼。 如果具名執行個體是唯一安裝的資料庫引擎執行個體,可能就會使用 TCP 連接埠 1433。 如果安裝了其他資料庫引擎執行個體,該執行個體可能會使用不同的 TCP 連接埠。 由於資料庫引擎每次啟動時,選取的連接埠可能都會變更,因此很難將防火牆設定為能夠存取正確的連接埠號碼。 如果使用防火牆,建議您重新設定資料庫引擎,以便每次都能使用相同的連接埠號碼。 建議您使用固定連接埠或靜態連接埠。 如需詳細資訊,請參閱將伺服器設定為接聽特定 TCP 連接埠 (SQL Server 組態管理員)

另一種將具名執行個體設定為接聽固定連接埠的方法,是為 sqlservr.exe 等 SQL Server 程式 (適用於資料庫引擎) 建立防火牆中的例外狀況。 當您使用具有進階安全性的 Windows 防火牆 MMC 嵌入式管理單元時,連接埠號碼不會顯示在 [輸入規則] 頁面的 [本機連接埠] 資料行中, 因此您可能會更難稽核哪些連接埠為開啟狀態。 其他考量是 Service Pack 或累積更新可能會變更 SQL Server 可執行檔的路徑,並讓防火牆規則失效。

如要使用具有進階安全性的 Windows 防火牆為 SQL Server 新增例外狀況,請參閱本文稍後的使用具有進階安全性的 Windows 防火牆嵌入式管理單元

Analysis Services 使用的連接埠

根據預設,SQL Server Analysis Services 使用的一般連接埠和相關聯的服務為:TCP 2382238380443。 下表會詳細說明這些連接埠。

下表列出了 Analysis Services 常用的連接埠。

功能 連接埠 註解
Analysis Services TCP 通訊埠 2383 (預設執行個體) Analysis Services 預設執行個體的標準連接埠。
SQL Server Browser 服務 只有 Analysis Services 具名執行個體需要 TCP 連接埠 2382 Analysis Services 具名執行個體的用戶端連線要求如未指定連接埠號碼,則會導向至連接埠 2382,亦即 SQL Server Browser 所接聽的連接埠。 SQL Server Browser 接著會將要求重新導向至具名執行個體所使用的連接埠。
Analysis Services 已設定成可透過 IIS/HTTP 使用

(PivotTable® 服務會使用 HTTP 或 HTTPS)
TCP 通訊埠 80 用於透過 URL 進行 HTTP 連接。
Analysis Services 已設定成可透過 IIS/HTTPS 使用

(PivotTable® 服務會使用 HTTP 或 HTTPS)
TCP 通訊埠 443 用於透過 URL 進行 HTTPS 連接。 HTTPS 是使用 TLS 的 HTTP 連線。

若使用者透過 IIS 和網際網路存取 Analysis Services,您就必須開啟 IIS 所接聽的連接埠, 接著在用戶端連接字串中指定連接埠。 在此情況下,直接存取 Analysis Services 時就無須開啟任何連接埠。 預設連接埠 2389 和連接埠 2382 以及所有不需要的其他連接埠都應受到限制。

如需了解為 Analysis Services 設定 Windows 防火牆的逐步指示,請參閱設定 Windows 防火牆以允許 Analysis Services 存取

Reporting Services 使用的連接埠

根據預設,SQL Server Reporting Services 使用的一般連接埠和相關聯的服務為:TCP 80443。 下表會詳細說明這些連接埠。

下表列出了 Reporting Services 常用的連接埠。

功能 連接埠 註解
Reporting Services Web 服務 TCP 通訊埠 80 用於透過 URL 與 Reporting Services 進行 HTTP 連線。 建議您不要使用預先設定的規則 World Wide Web 服務 (HTTP)。 如需詳細資訊,請參閱下面的「 與其他防火牆規則的互動 」一節。
Reporting Services 已設定成可透過 HTTPS 使用 TCP 通訊埠 443 用於透過 URL 進行 HTTPS 連接。 HTTPS 是使用 TLS 的 HTTP 連線。 建議您不要使用預先設定的規則 Secure World Wide Web 服務 (HTTPS)。 如需詳細資訊,請參閱下面的「 與其他防火牆規則的互動 」一節。

當 Reporting Services 連線至資料庫引擎或 Analysis Services 的執行個體時,您也必須為這些服務開啟適當的連接埠。 如需了解為 Reporting Services 設定 Windows 防火牆的逐步指示,請參閱設定防火牆以允許報表伺服器存取

Integration Services 使用的連接埠

下表列出了 Integration Services 服務常用的連接埠。

功能 連接埠 註解
Microsoft 遠端程序呼叫 (MS RPC)

由 Integration Services 執行階段使用。
TCP 通訊埠 135

請參閱「 通訊埠 135 的特殊考量
Integration Services 服務會使用連接埠 135 上的 DCOM。 服務控制管理員會使用連接埠 135 來執行工作,例如啟動和停止 Integration Services 服務,以及將控制要求傳輸至執行中的服務。 連接埠號碼無法變更。

只有當您要從 Management Studio 或自訂應用程式連線至 Integration Services 服務的遠端執行個體時,才需要開啟此連接埠。

如需了解為 Integration Services 設定 Windows 防火牆的逐步指示,請參閱 Integration Services 服務 (SSIS 服務)

其他連接埠與服務

下表列出了 SQL Server 可能仰賴的連接埠和服務。

案例 連接埠 註解
Windows Management Instrumentation

如需 Windows Management Instrumentation (WMI) 的相關詳細資訊,請參閱適用於 WMI 提供者的組態管理概念
WMI 會使用透過 DCOM 所指派的通訊埠,當做共用服務主機執行。 WMI 可能正在使用 TCP 通訊埠 135。

請參閱「 通訊埠 135 的特殊考量
SQL Server 組態管理員會使用 WMI 來列出服務並加以管理。 建議您使用預先設定的規則群組 Windows Management Instrumentation (WMI) 。 如需詳細資訊,請參閱下面的「 與其他防火牆規則的互動 」一節。
Microsoft 分散式交易協調器 (MS DTC) TCP 通訊埠 135

請參閱「 通訊埠 135 的特殊考量
若應用程式使用分散式交易,您可能必須設定防火牆,以允許 Microsoft 分散式交易協調器 (MS DTC) 流量在個別 MS DTC 執行個體之間,以及在 MS DTC 與資源管理員 (如 SQL Server) 之間流動。 我們建議您使用預先設定的規則群組 [分散式交易協調器]

針對個別資源群組中的整個叢集設定單一共用 MS DTC 時,您應該將 sqlservr.exe 當成例外新增至防火牆。
Management Studio 中的瀏覽按鈕會使用 UDP 來連線至 SQL Server Browser 服務。 如需詳細資訊,請參閱 SQL Server Browser 服務 (資料庫引擎和 SSAS) UDP 通訊埠 1434 UDP 是一種無連接的通訊協定。

防火牆有一個設定 (INetFwProfile 介面的 UnicastResponsesToMulticastBroadcastDisabled 屬性),可控制防火牆的行為,以及對廣播 (多點傳送) UDP 要求的單點傳播回應。 它有兩種行為:

如果此設定為 TRUE,就完全不允許廣播的任何單點傳送回應。 列舉服務將會失敗。

如果此設定為 FALSE (預設值),就允許單點傳送回應 3 秒。 您無法設定時間的長度。 在擁塞或高延遲的網路中,或針對負載繁重的伺服器,嘗試列舉 SQL Server 的執行個體可能會傳回部分清單,因而誤導使用者。
IPsec 傳輸 UDP 通訊埠 500 和 UDP 通訊埠 4500 如果網域原則要求透過 IPsec 完成網路通訊,您也必須將 UDP 通訊埠 4500 和 UDP 通訊埠 500 加入至例外清單。 IPsec 是在 Windows 防火牆嵌入式管理單元中使用 [新增輸入規則精靈] 的選項。 如需詳細資訊,請參閱稍後的 使用具有進階安全性嵌入式管理單元的 Windows 防火牆
使用 Windows 驗證搭配信任的網域 防火牆必須設定成允許驗證要求。 如需詳細資訊,請參閱< 如何設定網域和信任的防火牆>。
SQL Server 和 Windows 叢集 叢集需要與 SQL Server 未直接相關的額外連接埠。 如需詳細資訊,請參閱< 啟用可供叢集使用的網路>。
保留在 HTTP 伺服器 API (HTTP.SYS) 中的 URL 命名空間 可能是 TCP 通訊埠 80,但是可以設定成其他通訊埠。 如需一般資訊,請參閱< 設定 HTTP 和 HTTPS>。 如需使用 HttpCfg.exe 保留 HTTP.SYS 端點的 SQL Server 特定資訊,請參閱關於 URL 保留及註冊 (SSRS 組態管理員)

連接埠 135 的特殊考量

當您使用 RPC 搭配 TCP/IP 或 UDP/IP 作為傳輸時,輸入連接埠會視需要以動態的方式指派給系統服務。 會使用的是大小大於連接埠 1024 的 TCP/IP 與 UDP/IP 連接埠。 這些連接埠稱為「隨機 RPC 連接埠」。在這些情況下,RPC 用戶端會仰賴 RPC 端點對應程式來告知他們哪些動態連接埠已指派給伺服器。 對於某些以 RPC 為基礎的服務而言,您可以設定特定通訊埠,而非讓 RPC 以動態方式指派通訊埠。 您也可以將 RPC 動態指派的連接埠限制在較小的範圍內,無論服務為何。 由於連接埠 135 用於許多服務,因此經常遭受惡意使用者的攻擊。 開啟通訊埠

如需有關通訊埠 135 的詳細資訊,請參閱下列參考:

與其他防火牆規則的互動

[Windows 防火牆] 會使用規則和規則群組來建立其組態。 每個規則或規則群組都會與特定的程式或服務相關聯,而且該程式或服務可能會在您不知情的情況下修改或刪除該項規則。 例如,規則群組 World Wide Web 服務 (HTTP)World Wide Web 服務 (HTTPS) 會與 IIS 相關聯。 啟用這些規則會開啟連接埠 80 和 443,而且如果啟用這些規則,相依於連接埠 80 和 443 的 SQL Server 功能都將正常運作。 不過,設定 IIS 的管理員可能會修改或停用這些規則。 若您要針對 SQL Server 使用連接埠 80 和 443,則應建立自己的規則或規則群組,以在其他 IIS 規則之外獨立維護您偏好的連接埠組態。

具有進階安全性的 Windows 防火牆 MMC 嵌入式管理單元允許符合任何適用允許規則的所有流量。 因此,若有兩項同時套用至連接埠 80 的規則 (具有不同的參數), 符合任一規則的流量都會受到允許。 因此,若一項規則允許來自區域子網路且透過連接埠 80 的流量,而另一項允許來自任何位址的流量,結果會是所有流向連接埠 80 的流量都會獨立於來源。 若要有效管理 SQL Server 的存取權,系統管理員應該定期檢閱在伺服器上啟用的所有防火牆規則。

防火牆設定檔的概觀

防火牆設定檔會由作業系統使用,用以按照連線能力、連線及類別識別及記憶每個網路。

[具有進階安全性的 Windows 防火牆] 具有三種網路位置類型:

  • 定義域:Windows 可以針對電腦所加入的網域,驗證網域控制站的存取權。
  • 公用:除了網域網路以外,所有網路一開始都會分類成公用。 代表直接連接至網際網路或位於公共場所 (例如機場和咖啡店) 的網路應該會保持公用。
  • 私人:由使用者或應用程式識別成私人的網路。 只有受信任的網路才應該識別成私人網路。 使用者可能會想要將家庭或小型企業網路識別成私人。

管理員可以針對每種網路位置類型建立設定檔,而且每個設定檔都含有不同的防火牆原則。 不過,一次只會套用一個設定檔。 設定檔的套用順序如下所示:

  1. 若所有介面都向電腦為成員之一的網域控制站進行了驗證,即會套用網域設定檔。
  2. 如果所有介面都經過網域控制站驗證或連接至分類成私人網路位置的網路,就會套用私人設定檔。
  3. 否則,就會套用公用設定檔。

您可以使用 [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元來檢視和設定所有防火牆設定檔。 [控制台] 中的 [Windows 防火牆] 項目只會設定目前的設定檔。

使用控制台中的 Windows 防火牆項目進行其他防火牆設定

加入的防火牆可針對來自特定電腦或區域子網路的傳入連線限制連接埠的開啟。 限制連接埠開啟的範圍以減少電腦遭受惡意使用者攻擊的風險。

注意

使用 [控制台] 中的 [Windows 防火牆] 項目只會設定目前的防火牆設定檔。

使用控制台中的 Windows 防火牆項目來變更防火牆例外狀況的範圍

  1. 在控制台的 [Windows 防火牆] 項目內,在 [例外狀況] 索引標籤中選取程式或連接埠,接著選取 [屬性] 或 [編輯]。

  2. 在 [Edit a Program] 或 [Edit a Port] 對話方塊中,選取 [變更範圍]。

  3. 選擇下列其中一個選項:

    • 任何電腦 (包含網際網路上的電腦):不建議。 可設置您的電腦以連線至指定程式或連接埠的任何電腦。 雖然您可能需要這項設定才能將資訊呈現給網際網路上的匿名使用者,不過這樣做會增加遭受惡意使用者攻擊的風險。 啟用此設定可允許網路位址轉譯 (NAT) 周遊 (例如 Edge Traversal 選項),進而提升暴露風險。

    • 只有我的網路 (子網路):相較於 [任何電腦],是更為安全的設定。 只有位於網路之區域子網路的電腦才能連接至程式或通訊埠。

    • 自訂清單:只有具備已列出 IP 位址的電腦才能連線。 此安全設定可能會比 [只有我的網路 (子網路)] 更安全,不過使用 DHCP 的用戶端電腦可能偶爾會變更其 IP 位址;將會停用連線功能。 您不想授權的其他電腦可能會接受列出的 IP 位址,並與其連線。 [自訂清單]適合用於列出其他已設定為使用固定 IP 位址的服務。

      IP 位址可能會遭入侵者盜用。 限制性防火牆規則只會與您的網路基礎結構同樣強固。

使用具有進階安全性的 Windows 防火牆嵌入式管理單元

進階防火牆設定可透過具有進階安全性的 Windows 防火牆 MMC 嵌入式管理單元進行設置。 此嵌入式管理單元包含規則精靈,以及控制台中 [Windows 防火牆] 項目未提供的設定。 這些設定包括:

  • 加密設定
  • 服務限制
  • 依據名稱限制電腦的連接
  • 限制特定使用者或設定檔的連接
  • 允許傳輸通過網路位址轉譯 (NAT) 路由器的邊緣周遊
  • 設定輸出規則
  • 設定安全性規則
  • 針對內送連接要求 IPsec

使用新增規則精靈來建立新的防火牆規則

  1. 在 [開始] 功能表上,選取 [執行] 、輸入 WF.mscWF.msc,然後選取 [確定] 。
  2. 在 [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按一下 [輸入規則] ,然後選取 [新增規則] 。
  3. 使用您想要的設定來完成 [新增輸入規則精靈]

新增適用於 SQL Server 可執行檔的程式例外狀況

  1. 從 [開始] 功能表,鍵入 wf.msc。 按 Enter 或選取搜尋結果 wf.msc,以開啟具有進階安全性的 Windows Defender 防火牆

  2. 在左窗格中,選取 [輸入規則] 。

  3. 在右窗格的 [動作] 下方,選取 [新增規則]。[新增輸入規則精靈] 隨即開啟。

  4. 在 [規則類型] 上,選取 [程式] 。 選取 [下一步] 。

  5. 在 [程式] 上,選取 [這個程式路徑] 。 選取 [瀏覽] 以找出您的 SQL Server 執行個體。 此程式稱為 sqlservr.exe, 通常位於:

    C:\Program Files\Microsoft SQL Server\MSSQL<VersionNumber>.<InstanceName>\MSSQL\Binn\sqlservr.exe

    選取 [下一步] 。

  6. 在 [動作] 上,選取 [允許連線]。 選取 [下一步] 。

  7. 在 [設定檔] 上,加入所有三個設定檔。 選取 [下一步] 。

  8. 在 [名稱] 上,輸入規則的名稱。 選取 [完成] 。

如需端點的相關詳細資訊,請參閱:

疑難排解防火牆設定

下列工具和技巧可用於疑難排解防火牆問題:

  • 有效的通訊埠狀態是與該通訊埠相關之所有規則的聯集。 在嘗試封鎖連接埠存取權時,檢閱引用連接埠號碼的所有規則可能會很有用。 使用具有進階安全性的 Windows 防火牆 MMC 嵌入式管理單元檢閱規則,並按照連接埠號碼排序輸入和輸出規則。

  • 檢閱執行 SQL Server 之電腦上的使用中連接埠。 此檢閱流程包括確認哪些是接聽的 TCP/IP 連接埠,並確認連接埠的狀態。

  • PortQry 公用程式可用於將 TCP/IP 通訊埠的狀態回報為接聽中、未接聽或已篩選。 (公用程式若為已篩選狀態,可能就不會接收來自連接埠的回應。) PortQry 公用程式可從 Microsoft 下載中心下載。

列出接聽的 TCP/IP 連接埠

若要確認接聽的連接埠,請使用 netstat 命令列公用程式來顯示使用中的 TCP 連線和 IP 統計資料。

  1. 開啟命令提示字元視窗。

  2. 在命令提示字元中,輸入 netstat -n -a

    您可以從 [控制台] 開啟 -n 參數會指示 netstat 以數值方式顯示使用中 TCP 連線的位址與通訊埠號碼。 -a 參數會指示 netstat 顯示電腦所接聽之電腦上的 TCP 與 UDP 通訊埠。