設定 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 和遠端偵錯工具會在安裝或啟動期間嘗試開啟正確的連接埠。 不過,在某些情況下,例如第三方防火牆,您可能需要手動開啟連接埠。
若要開啟連接埠:
在 Windows [開始] 功能表中,搜尋並開啟 [具有進階安全性的 Windows 防火牆]。 從 Windows 10 開始,這是 [具有進階安全性的 Windows Defender 防火牆]。
針對新的傳入連接埠,選取 [輸入規則],然後選取 [新增規則]。 針對傳出規則,請改為選取 [輸出規則]。
在 [新增輸入規則精靈] 中,選取 [連接埠],然後選取 [下一步]。
根據下表中的連接埠號碼,選取 TCP 或 UDP。
在 [特定本機連接埠] 下,輸入下表中的連接埠號碼,然後選取 [下一步]。
選取 [允許連線],然後選取 [下一步]。
選取一或多個要啟用的網路類型,包括遠端連線的網路類型,然後選取 [下一步]。
加入規則的名稱 (例如 msvsmon、IIS 或 Web 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 | 適用於 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) 執行網路通訊,則必須同時在 Visual Studio 和遠端電腦上開啟其他連接埠。 若要在遠端 IIS 網頁伺服器上偵錯,請在遠端電腦上開啟連接埠 80。
連接埠 | 傳入/傳出 | 通訊協定 | 說明 |
---|---|---|---|
500、4500 | 傳出 | UDP | 如果您的網域原則需要透過 IPSec 進行網路通訊時,則為必要項。 |
80 | 傳出 | TCP | 網頁伺服器偵錯的必要項。 |
若要允許特定應用程式通過 Windows 防火牆,請參閱透過 Windows 防火牆設定遠端偵錯。
允許透過 Windows 防火牆的遠端偵錯工具
當您設定遠端偵錯工具時,組態軟體應該會開啟正確的連接埠。 不過,在某些案例下,您可能需要手動允許遠端偵錯工具通過防火牆。
如想透過 Windows 防火牆允許遠端偵錯工具︰
在 Windows [開始] 功能表中,搜尋並開啟 [Windows 防火牆] 或 [Windows Defender 防火牆]。
選取 [允許應用程式通過 Windows 防火牆]。
如果 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 未出現在 [允許的應用程式與功能] 下,請選取 [變更設定],然後選取 [允許其他應用程式]。
如果遠端偵錯工具應用程式仍然未列在 [加入應用程式] 對話方塊中,請選取 [瀏覽],並瀏覽至 <Visual Studio 安裝目錄>\Common7\IDE\Remote Debugger\<x86、x64 或 Appx>,視您應用程式的適當架構而定。 選取 msvsmon.exe,然後選取 [加入]。
在 [應用程式] 清單中,選取您剛才加入的遠端偵錯工具。 選取 [網路類型],然後選取一或多個網路類型,包括遠端連線的網路類型。
選取 [加入],然後選取 [確定]。
針對遠端偵錯連線進行疑難排解
如果您無法使用遠端偵錯工具連結至應用程式,請確定遠端偵錯防火牆連接埠、通訊協定、網路類型和應用程式設定都正確。
在 Windows [開始] 功能表中,搜尋並開啟 [Windows 防火牆],然後選取 [允許應用程式通過 Windows 防火牆]。 確定 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 出現在 [允許的應用程式與功能] 清單中,並具有已選取核取方塊,且已選取正確的網路類型。 如果沒有,請加入正確的應用程式和設定。
在 Windows [開始] 功能表中,搜尋並開啟 [具有進階安全性的 Windows 防火牆]。 確定 [遠端偵錯工具] 或 [Visual Studio 遠端偵錯工具] 出現在 [輸入規則] (以及選用的 [輸出規則]) 底下,並有綠色核取記號圖示,且所有設定都正確。
- 若要檢視或變更規則設定,請以滑鼠右鍵按一下清單中的 [遠端偵錯工具] 應用程式,然後選取 [屬性]。 使用 [屬性] 索引標籤來啟用或停用規則,或變更連接埠號碼、通訊協定或網路類型。
- 如果遠端偵錯工具應用程式未出現在規則清單中,請加入並設定正確的連接埠。