共用方式為


設定 Windows 防火牆以進行遠端偵錯

在受 Windows 防火牆保護的網路上,防火牆必須設定為允許遠端偵錯。 Visual Studio 和遠端偵錯工具會在安裝或啟動期間嘗試開啟正確的防火牆埠,但您可能也需要手動開啟埠或允許應用程式。

本主題描述如何設定 Windows 防火牆,以在 Windows 10、8/8.1 和 7 上啟用遠端偵錯;和 Windows Server 2012 R2、2012 和 2008 R2 計算機。 Visual Studio 和遠端電腦不需要執行相同的作業系統。 例如,Visual Studio 計算機可以執行 Windows 11,而遠端電腦可以執行 Windows Server 2012 R2。

注意

在不同的操作系統和舊版 Windows 上設定 Windows 防火牆的指示稍有不同。 Windows 8/8.1、Windows 10 和更新版本,以及 Windows Server 2012 的設定會使用單字應用程式,而 Windows 7 和 Windows Server 2008 則使用單字程式

設置遠端偵錯的端口

Visual Studio 和遠端調試程式會在安裝或啟動期間嘗試開啟正確的埠。 不過,在某些情況下,例如第三方防火牆,您可能需要手動開啟埠。

若要開啟埠:

  1. 在 Windows [開始] 功能表中,搜尋並開啟 具有進階安全性的 Windows 防火牆。 從 Windows 10 開始,這是 具有進階安全性的 Windows Defender 防火牆

  2. 針對新的傳入埠,選取 傳入規則,然後選取 新增規則。 針對傳出規則,請改為選取 [輸出規則]

  3. 在 [新增輸入規則精靈]中,選取 [連接埠],然後選取 [下一步]

  4. 根據下表的埠號碼,選取 [TCP] 或 [UDP]。

  5. 特定本機埠下,輸入下表中的埠號碼,然後選取 下一步

  6. 選取 允許連線,然後選取 [下一步]

  7. 選取一或多個要啟用的網路類型,包括遠端連線的網路類型,然後選取 [[下一步]

  8. 新增規則的名稱(例如,msvsmonIISWeb Deploy),然後選取 [完成]

    新的規則應該會出現在 輸入規則送出規則 清單中,並且可以被選取。

若要使用PowerShell開啟埠:

針對 Windows 防火牆,您可以使用 PowerShell 命令,例如 New-NetFirewallRule

下列範例會開啟遠端電腦上的遠端調試程式的埠 4026。 您需要使用的埠和路徑可能不同。

New-NetFirewallRule -DisplayName "msvsmon" -Direction Inbound -Program "Program Files\Microsoft Visual Studio\18\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe" -LocalPort 4026 -Protocol TCP -Authentication Required -Action Allow

下列範例會開啟遠端電腦上的遠端調試程式的埠 4026。 您需要使用的埠和路徑可能不同。

New-NetFirewallRule -DisplayName "msvsmon" -Direction Inbound -Program "Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe" -LocalPort 4026 -Protocol TCP -Authentication Required -Action Allow

下列範例會在遠端電腦上開啟遠端調試程式的埠 4024。 您需要使用的路徑可能不同。

New-NetFirewallRule -DisplayName "msvsmon" -Direction Inbound -Program "Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe" -LocalPort 4024 -Protocol TCP -Authentication Required -Action Allow

在遠端電腦上能啟用遠端偵錯的埠

若要進行遠端偵錯,必須在遠端電腦上開啟下列埠:

傳入/傳出 通訊協定 描述
4026 傳入 TCP 適用於 Visual Studio 2022 和更新版本。 如需詳細資訊,請參閱 Visual Studio 遠端調試程式埠指派。
4025 傳入 TCP 適用於 Visual Studio 2022 和更新版本和 Microsoft Azure App Service。 此埠僅用於從64位版本的遠端調試程式遠端偵錯32位進程。 如需詳細資訊,請參閱 Visual Studio 遠端調試程式埠指派。
4024 傳入 TCP 這適用於 Microsoft Azure App Service。 如需詳細資訊,請參閱 Visual Studio 遠端調試程式埠指派。
3702 外向 UDP (選擇性的)用于遠端偵錯器發現的必要項目。
傳入/傳出 通訊協定 描述
4024 傳入 TCP 針對 Visual Studio 2019 和 Microsoft Azure App Service。 每個 Visual Studio 版本的埠號碼會遞增 2。 如需詳細資訊,請參閱 Visual Studio 遠端調試程式埠指派。
4025 傳入 TCP 針對 Visual Studio 2019 和 Azure App Service。 此埠僅用於從64位版本的遠端調試程式遠端偵錯32位進程。 如需詳細資訊,請參閱 Visual Studio 遠端調試程式埠指派。
3702 外向 UDP (選擇性的)用于遠端偵錯器發現的必要項目。

如果您在 [工具]>[選項] 底下選取 >,請開啟這些額外的遠端調試程式埠。 調試程式受控相容性模式會啟用舊版Visual Studio 2010版本的調試程式。

傳入/傳出 通訊協定 描述
135, 139, 445 外向 TCP 必填。
137, 138 外向 UDP 必填。

IPsec 和 IIS 的埠

如果您的網域原則需要透過因特網通訊協定安全性 (IPsec) 執行網路通訊,您必須在 Visual Studio 和遠端電腦上開啟其他埠。 若要在遠端 Internet Information Services (IIS) 網頁伺服器上進行偵錯,請在遠端電腦上開啟埠 80。

傳入/傳出 通訊協定 描述
500, 4500 外向 UDP 如果您的網域原則需要透過 IPsec 執行網路通訊,則為必要。
80 外向 TCP 在遠端電腦上進行 Web 伺服器偵錯。

若要允許特定應用程式透過 Windows 防火牆,請參閱 透過 Windows 防火牆設定遠端偵錯

允許遠端調試程式透過 Windows 防火牆

當您 設定遠端偵錯工具時,設定軟體應該會在遠端電腦上開啟正確的埠。 不過,在某些情況下,您可能需要手動允許遠端調試程式通過防火牆。

若要允許遠端調試程式透過 Windows 防火牆:

  1. 在 Windows [開始] 功能表中,搜尋並開啟 Windows 防火牆,或 Windows Defender 防火牆

  2. 選擇 允許應用程式通過 Windows 防火牆

  3. 如果 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 未出現在 [允許的應用程式和功能] 底下,請選取 [允許另一個應用程式],或選取 [變更設定],然後選取 [允許另一個應用程式]。

  4. 如果遠端調試程式應用程式仍然未列在 [新增應用程式] 對話框中,請選取 [流覽],然後流覽至 <Visual Studio 安裝目錄>\Common7\IDE\Remote Debugger\<x86x64Appx>,視您應用程式的適當架構而定。 選取 msvsmon.exe,然後選取 開啟。

  5. 在 [Apps] 列表中,選取您剛才新增 遠端調試程式。 選取 [網络類型],然後選取一或多個網路類型,包括遠端連線的網路類型。

  6. 選取 新增,然後選取 確定

針對遠端偵錯連線進行疑難解答

如果您無法使用遠端調試程式附加至應用程式,請確定遠端偵錯防火牆埠、通訊協定、網路類型和應用程式設定都正確無誤。

  • 在 Windows [開始] 功能表中,搜尋並開啟 [Windows 防火牆],然後選取 [[允許應用程式通過 Windows 防火牆]。 請確定 遠端調試程式Visual Studio 遠端調試程式 出現在 [允許的應用程式和功能] 清單中,並選中它的復選框,且選取了正確的網路類型。 如果沒有,新增正確的應用程式和設定。

  • 在 Windows 開始 功能表中,搜尋並開啟 具有進階安全性的 Windows 防火牆。 請確定 遠端調試程式Visual Studio 遠端調試程式 出現在 輸入規則 底下(選擇性地 輸出規則),且所有設定都正確無誤。

    • 若要檢視或變更規則設定,請以滑鼠右鍵按下清單中的 遠端除錯程式 應用程式,然後選取 [屬性] 。 使用 [屬性] 索引標籤來啟用或停用規則,或變更埠號碼、通訊協定或網路類型。
    • 如果遠端除錯程式應用程式未出現在規則清單中,新增並設定正確的連接埠