設定 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 和遠端調試程式會在安裝或啟動期間嘗試開啟正確的埠。 不過,在某些情況下,例如第三方防火牆,您可能需要手動開啟埠。
若要開啟埠:
在 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
在遠端電腦上能啟用遠端偵錯的埠
若要進行遠端偵錯,必須在遠端電腦上開啟下列埠:
如果您在 [工具]>>[選項] 底下選取 [使用受控相容性模式],請開啟這些額外的遠端調試程式埠。 調試程式受控相容性模式會啟用舊版Visual Studio 2010版本的調試程式。
埠 | 輸入/輸出 | 通訊協定 | 描述 |
---|---|---|---|
135, 139, 445 | 外向 | TCP | 必填。 |
137, 138 | 外向 | UDP | 必填。 |
如果您的網域原則需要透過因特網通訊協定安全性 (IPsec) 執行網路通訊,您必須在 Visual Studio 和遠端電腦上開啟其他埠。 若要在遠端 Internet Information Services (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],然後選取 [[新增]。
在 [Apps] 列表中,選取您剛才新增 遠端調試程式。 選取 [網络類型],然後選取一或多個網路類型,包括遠端連線的網路類型。
選取 新增,然後選取 確定。
針對遠端偵錯連線進行疑難解答
如果您無法使用遠端調試程式附加至應用程式,請確定遠端偵錯防火牆埠、通訊協定、網路類型和應用程式設定都正確無誤。
在 Windows [開始] 功能表中,搜尋並開啟 [Windows 防火牆],然後選取 [[允許應用程式通過 Windows 防火牆]。 請確定 遠端調試程式 或 Visual Studio 遠端調試程式 出現在 [允許的應用程式和功能] 清單中,並選中它的復選框,且選取了正確的網路類型。 如果沒有,新增正確的應用程式和設定。
在 Windows 開始 功能表中,搜尋並開啟 具有進階安全性的 Windows 防火牆。 請確定 遠端調試程式 或 Visual Studio 遠端調試程式 出現在 輸入規則 底下(選擇性地 輸出規則),且所有設定都正確無誤。
- 若要檢視或變更規則設定,請以滑鼠右鍵按下清單中的 遠端除錯程式 應用程式,然後選取 [屬性] 。 使用 [屬性] 索引標籤來啟用或停用規則,或變更埠號碼、通訊協定或網路類型。
- 如果遠端除錯程式應用程式未出現在規則清單中,新增並設定正確的連接埠。