共用方式為


Azure VM 客體 OS 防火牆封鎖輸入流量

適用於:✔️ Windows VM

本文討論如何修正客體操作系統防火牆封鎖輸入流量時所發生的遠端桌面入口網站 (RDP) 問題。

徵兆

您無法使用 RDP 連線來連線到 Azure 虛擬機(VM)。 從開機診斷 -> 螢幕快照顯示操作系統已完全載入歡迎畫面 (Ctrl+Alt+Del)。

原因

原因 1

RDP 規則未設定為允許 RDP 流量。

原因 2

客體系統防火牆配置檔已設定為封鎖所有輸入連線,包括 RDP 流量。

[防火牆設定] 視窗 [網域配置檔] 索引標籤底下 [封鎖所有輸入連線] 選項的螢幕快照。

解決方案

遵循這些步驟之前,請建立受影響 VM 系統磁碟的快照集作為備份。 如需詳細資訊,請參閱快照集磁碟

若要修正此問題,請使用如何使用遠端工具來疑難解答 Azure VM 問題中的其中一種方法,以從遠端連線到 VM,然後編輯客體操作系統防火牆規則以允許 RDP 流量。

在線疑難解答

連接到序列控制台,然後開啟PowerShell實例。 如果 VM 上未啟用序列主控台,請移至 [離線修復 VM]。

風險降低 1

  1. 如果在 VM 上安裝並正常運作 Azure 代理程式,您可以在 VM 功能表上的 [說明>重設密碼] 下使用 [僅重設組態] 選項。

  2. 執行此復原選項會執行下列動作:

    • 如果已停用,請啟用 RDP 元件。

    • 啟用所有 Windows 防火牆配置檔。

    • 確定已在 Windows 防火牆中開啟 RDP 規則。

    • 如果先前的步驟無法運作,請手動重設防火牆規則。 若要這樣做,請執行下列命令來查詢包含 「Remote Desktop」 名稱的所有規則:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(Name.*Remote Desktop)" -context 9,4 | more
      

      如果 RDP 連接埠設定為 3389 以外的任何其他埠,您必須找到可能已建立並設定為此埠的任何自定義規則。 若要查詢具有自訂埠的所有輸入規則,請執行下列命令:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(LocalPort.*<CUSTOM PORT>)" -context 9,4 | more
      
  3. 如果您看到規則已停用,請加以啟用。 若要開啟整個群組,例如內建的遠端桌面群組,請執行下列命令:

    netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
    

    否則,若要開啟特定的遠端桌面 (TCP-In) 規則,請執行下列命令:

    netsh advfirewall firewall set rule name="<CUSTOM RULE NAME>" new enable=yes
    
  4. 若要進行疑難解答,您可以將防火牆配置檔關閉:

    netsh advfirewall set allprofiles state off
    

    完成疑難解答並正確設定防火牆之後,請重新啟用防火牆。

    注意

    您不需要重新啟動 VM 以套用這些變更。

  5. 嘗試建立 RDP 連線以存取 VM。

風險降低 2

  1. 查詢防火牆配置檔,以判斷輸入防火牆原則是否設定為 BlockInboundAlways

    netsh advfirewall show allprofiles | more
    

    包含 BlockInboundAlways 之輸入防火牆配置檔查詢結果的螢幕快照。

    注意

    下列指導方針適用於防火牆原則,視其設定方式而定:

    • BlockInbound:除非您有允許該流量的規則,否則所有輸入流量都會遭到封鎖。
    • BlockInboundAlways:將會忽略所有防火牆規則,並封鎖所有流量。
  2. DefaultInboundAction 設定為不一定會封鎖的流量。 若要這樣做,請執行下列命令:

    netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
    
  3. 再次查詢配置檔,以確定您的變更已成功進行。 若要這樣做,請執行下列命令:

    netsh advfirewall show allprofiles | more
    

    注意

    您不需要重新啟動 VM 以套用變更。

  4. 請確定您已新增 RDP 連線的輸入規則。

  5. 請再試一次,透過 RDP 存取您的 VM。

離線防護功能

  1. 將系統磁碟連結至復原 VM

  2. 啟動與復原 VM 的遠端桌面連線。

  3. 請確定磁碟在磁碟管理控制台中標示為 [在線 ]。 請注意指派給鏈接系統磁碟的驅動器號。

風險降低 1

請參閱如何在客體OS上啟用-停用防火牆規則。

風險降低 2

  1. 將系統磁碟連結至復原 VM

  2. 啟動與復原 VM 的遠端桌面連線。

  3. 將系統磁碟連結至復原 VM 之後,請確定磁碟在磁碟管理控制台中標示為 [在線 ]。 請注意指派給連結 OS 磁碟的驅動器號。

  4. 開啟提升許可權的 PowerShell 實例,然後執行下列腳本:

    REM Backup the registry prior doing any change
    robocopy f:\windows\system32\config f:\windows\system32\config.BACK /MT
    
    REM Mount the hive
    reg load HKLM\BROKENSYSTEM f:\windows\system32\config\SYSTEM
    
    REM Delete the keys to block all inbound connection scenario
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    
    REM Unmount the hive
    reg unload HKLM\BROKENSYSTEM
    
  5. 中斷鏈接系統磁碟並重新建立 VM

  6. 檢查問題是否已解決。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。