Udostępnij za pośrednictwem


Zapora systemu operacyjnego gościa maszyny wirtualnej platformy Azure blokuje ruch przychodzący

W tym artykule omówiono sposób rozwiązywania problemu z portalem pulpitu zdalnego (RDP), który występuje, jeśli zapora systemu operacyjnego gościa blokuje ruch przychodzący.

Symptomy

Nie można użyć połączenia RDP w celu nawiązania połączenia z maszyną wirtualną platformy Azure. Z poziomu diagnostyki rozruchu —> zrzut ekranu pokazuje, że system operacyjny jest w pełni załadowany na ekranie powitalnym (Ctrl+Alt+Del).

Przyczyna

Przyczyna 1

Reguła RDP nie jest skonfigurowana tak, aby zezwalała na ruch RDP.

Przyczyna 2

Profile zapory systemu gościa są skonfigurowane w celu blokowania wszystkich połączeń przychodzących, w tym ruchu RDP.

Zrzut ekranu przedstawiający opcję blokuj wszystkie połączenia przychodzące na karcie Profil domeny w oknie ustawienia zapory.

Rozwiązanie

Przed wykonaniem tych kroków wykonaj migawkę dysku systemowego maszyny wirtualnej, na którą dotyczy problem, jako kopię zapasową. Aby uzyskać więcej informacji, zobacz Migawka dysku.

Aby rozwiązać ten problem, użyj jednej z metod w temacie Jak używać narzędzi zdalnych do rozwiązywania problemów z maszyną wirtualną platformy Azure w celu zdalnego nawiązywania połączenia z maszyną wirtualną, a następnie edytuj reguły zapory systemu operacyjnego gościa w celu zezwalania na ruch RDP.

Rozwiązywanie problemów online

Połącz się z konsolą szeregową, a następnie otwórz wystąpienie programu PowerShell. Jeśli konsola szeregowa nie jest włączona na maszynie wirtualnej, przejdź do pozycji "Napraw maszynę wirtualną w trybie offline.

Środki zaradcze 1

  1. Jeśli agent platformy Azure jest zainstalowany i działa poprawnie na maszynie wirtualnej, możesz użyć opcji "Resetuj tylko konfigurację" w obszarze Hasło resetowania pomocy> w menu maszyny wirtualnej.

  2. Uruchomienie tej opcji odzyskiwania powoduje wykonanie następujących czynności:

    • Włącza składnik RDP, jeśli jest wyłączony.

    • Włącza wszystkie profile zapory systemu Windows.

    • Upewnij się, że reguła RDP jest włączona w zaporze systemu Windows.

    • Jeśli poprzednie kroki nie działają, ręcznie zresetuj regułę zapory. W tym celu wykonaj zapytanie dotyczące wszystkich reguł, które zawierają nazwę "Pulpit zdalny", uruchamiając następujące polecenie:

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

      Jeśli port RDP został ustawiony na inny port niż 3389, musisz znaleźć dowolną regułę niestandardową, która mogła zostać utworzona i ustawiona na ten port. Aby wykonać zapytanie dotyczące wszystkich reguł ruchu przychodzącego, które mają port niestandardowy, uruchom następujące polecenie:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(LocalPort.*<CUSTOM PORT>)" -context 9,4 | more
      
  3. Jeśli zobaczysz, że reguła jest wyłączona, włącz ją. Aby otworzyć całą grupę, taką jak wbudowana grupa pulpitu zdalnego, uruchom następujące polecenie:

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

    W przeciwnym razie, aby otworzyć określoną regułę pulpitu zdalnego (TCP-In), uruchom następujące polecenie:

    netsh advfirewall firewall set rule name="<CUSTOM RULE NAME>" new enable=yes
    
  4. Aby rozwiązać ten problem, możesz wyłączyć profile zapory:

    netsh advfirewall set allprofiles state off
    

    Po zakończeniu rozwiązywania problemów i prawidłowym ustawieniu zapory ponownie włącz zaporę.

    Uwaga

    Aby zastosować te zmiany, nie trzeba ponownie uruchamiać maszyny wirtualnej.

  5. Spróbuj nawiązać połączenie RDP, aby uzyskać dostęp do maszyny wirtualnej.

Środki zaradcze 2

  1. Wykonaj zapytanie dotyczące profilów zapory, aby określić, czy dla zasad zapory ruchu przychodzącego ustawiono wartość BlockInboundAlways:

    netsh advfirewall show allprofiles | more
    

    Zrzut ekranu przedstawiający wynik zapytania dla profilów zapory dla ruchu przychodzącego, który zawiera element BlockInboundAlways.

    Uwaga

    Poniższe wytyczne dotyczą zasad zapory, w zależności od sposobu ich konfigurowania:

    • BlockInbound: cały ruch przychodzący zostanie zablokowany, chyba że obowiązuje reguła zezwalania na ten ruch.
    • BlockInboundAlways: wszystkie reguły zapory zostaną zignorowane i cały ruch zostanie zablokowany.
  2. Ustaw wartość DefaultInboundAction na nie zawsze zablokowany ruch. Aby to zrobić, uruchom następujące polecenie:

    netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
    
  3. Wykonaj ponownie zapytanie dotyczące profilów, aby upewnić się, że zmiana została pomyślnie wprowadzona. Aby to zrobić, uruchom następujące polecenie:

    netsh advfirewall show allprofiles | more
    

    Uwaga

    Nie musisz ponownie uruchamiać maszyny wirtualnej, aby zastosować zmiany.

  4. Upewnij się, że dodano regułę ruchu przychodzącego dla połączenia RDP.

  5. Spróbuj ponownie uzyskać dostęp do maszyny wirtualnej za pośrednictwem protokołu RDP.

Środki zaradcze w trybie offline

  1. Dołącz dysk systemowy do maszyny wirtualnej odzyskiwania.

  2. Uruchom połączenie pulpitu zdalnego z maszyną wirtualną odzyskiwania.

  3. Upewnij się, że dysk jest oflagowany jako Online w konsoli zarządzania dyskami. Zwróć uwagę na literę dysku przypisaną do dołączonego dysku systemowego.

Środki zaradcze 1

Zobacz Jak Enable-Disable regułę zapory w systemie operacyjnym gościa.

Środki zaradcze 2

  1. Dołącz dysk systemowy do maszyny wirtualnej odzyskiwania.

  2. Uruchom połączenie pulpitu zdalnego z maszyną wirtualną odzyskiwania.

  3. Po dołączeniu dysku systemowego do maszyny wirtualnej odzyskiwania upewnij się, że dysk jest oflagowany jako Online w konsoli zarządzania dyskami. Zwróć uwagę na literę dysku przypisaną do dołączonego dysku systemu operacyjnego.

  4. Otwórz wystąpienie programu PowerShell z podwyższonym poziomem uprawnień, a następnie uruchom następujący skrypt:

    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. Odłącz dysk systemowy i ponownie utwórz maszynę wirtualną.

  6. Sprawdź, czy problem został rozwiązany.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.