設定 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 設定會使用 Word 應用程式,而 Windows 7 和 Windows Server 2008 則使用 Word 程式

設定遠端偵錯的連接埠

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

若要開啟連接埠:

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

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

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

  4. 根據下表中的連接埠號碼,選取 TCPUDP

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

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

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

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

    新的規則應該會出現,並在 [輸入規則] 或 [輸出規則] 清單中選取。

若要使用 PowerShell 開啟連接埠:

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

下列範例會為遠端電腦上的遠端偵錯工具開啟連接埠 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 針對 VS 2022。 如需詳細資訊,請參閱 Visual Studio 遠端偵錯工具連接埠指派
4025 傳入 TCP 針對 VS 2022 和 Microsoft Azure App Service。 此連接埠僅用於從遠端偵錯工具的 64 位元版本遠端偵錯 32 位元程序。 如需詳細資訊,請參閱 Visual Studio 遠端偵錯工具連接埠指派
4024 傳入 TCP 針對 Microsoft Azure App Service。 如需詳細資訊,請參閱 Visual Studio 遠端偵錯工具連接埠指派
3702 傳出 UDP (選用) 遠端偵錯工具探索的必要項目。
連接埠 傳入/傳出 通訊協定 說明
4024 傳入 TCP 針對 VS 2019 和 Microsoft Azure App Service。 針對每個 Visual Studio 版本,連接埠編號會遞增 2。 如需詳細資訊,請參閱 Visual Studio 遠端偵錯工具連接埠指派
4025 傳入 TCP 針對 VS 2019 和 Azure App Service。 此連接埠僅用於從遠端偵錯工具的 64 位元版本遠端偵錯 32 位元程序。 如需詳細資訊,請參閱 Visual Studio 遠端偵錯工具連接埠指派
3702 傳出 UDP (選用) 遠端偵錯工具探索的必要項目。

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

連接埠 傳入/傳出 通訊協定 說明
135、139、445 傳出 TCP 必要。
137、138 傳出 UDP 必要。

如果您的網域原則需要透過 IPSec 執行網路通訊,則必須在 Visual Studio 和遠端電腦上開啟其他連接埠。 若要在遠端 IIS 網頁伺服器上偵錯,請在遠端電腦上開啟連接埠 80。

連接埠 傳入/傳出 通訊協定 說明
500、4500 傳出 UDP 如果您的網域原則需要透過 IPSec 進行網路通訊時,則為必要項。
80 傳出 TCP 網頁伺服器偵錯的必要項。

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

透過 Windows 防火牆設定遠端偵錯

您可以在遠端電腦上安裝遠端偵錯工具,或從共用資料夾執行它們。 不論是哪一種情況,都必須正確設定遠端電腦防火牆。

在遠端電腦上,遠端偵錯工具位於:

<Visual Studio 安裝目錄>\Common7\IDE\Remote Debugger\<x86x64Appx>

允許和設定透過 Windows 防火牆的遠端偵錯工具

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

  2. 選取 [允許應用程式通過 Windows 防火牆]

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

  4. 如果遠端偵錯工具應用程式仍然未列在 [加入應用程式] 對話方塊中,請選取 [瀏覽],並瀏覽至 <Visual Studio 安裝目錄>\Common7\IDE\Remote Debugger\<x86x64Appx>,視您應用程式的適當架構而定。 選取 msvsmon.exe,然後選取 [加入]

  5. 在 [應用程式] 清單中,選取您剛才加入的遠端偵錯工具。 選取 [網路類型],然後選取一或多個網路類型,包括遠端連線的網路類型。

  6. 選取 [加入],然後選取 [確定]

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

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

  • 在 Windows [開始] 功能表中,搜尋並開啟 [Windows 防火牆],然後選取 [允許應用程式通過 Windows 防火牆]。 確定 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 出現在 [允許的應用程式與功能] 清單中,並已選取正確的網路類型。 如果沒有,請加入正確的應用程式和設定

  • 在 Windows [開始] 功能表中,搜尋並開啟 [具有進階安全性的 Windows 防火牆]。 確定 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 出現在 [輸入規則] (以及選用的 [輸出規則]) 底下,並有綠色核取記號圖示,且所有設定都正確。

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