Włączanie lub wyłączanie reguły zapory w systemie operacyjnym gościa maszyny wirtualnej platformy Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Windows
Ten artykuł zawiera informacje dotyczące rozwiązywania problemów z sytuacją, w której podejrzewasz, że zapora systemu operacyjnego gościa filtruje częściowy ruch na maszynie wirtualnej. Może to być przydatne z następujących powodów:
Jeśli zmiana została celowo wprowadzona do zapory, która spowodowała niepowodzenie połączeń RDP, użycie funkcji rozszerzenia niestandardowego skryptu może rozwiązać ten problem.
Wyłączenie wszystkich profilów zapory jest bardziej niezawodnym sposobem rozwiązywania problemów niż ustawienie reguły zapory specyficznej dla protokołu RDP.
Rozwiązanie
Sposób konfigurowania reguł zapory zależy od wymaganego poziomu dostępu do maszyny wirtualnej. W poniższych przykładach są używane reguły protokołu RDP. Jednak te same metody można zastosować do dowolnego innego rodzaju ruchu, wskazując prawidłowy klucz rejestru.
Rozwiązywanie problemów w trybie online
Ograniczenie ryzyka 1: rozszerzenie niestandardowego skryptu
Utwórz skrypt przy użyciu następującego szablonu.
Aby włączyć regułę:
netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
Aby wyłączyć regułę:
netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
Przekaż ten skrypt w witrynie Azure Portal przy użyciu funkcji rozszerzenia niestandardowego skryptu.
Ograniczenie ryzyka 2: Zdalny program PowerShell
Jeśli maszyna wirtualna jest w trybie online i może być dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz wykonać następujące środki zaradcze przy użyciu innej maszyny wirtualnej.
Na maszynie wirtualnej rozwiązywania problemów otwórz okno konsoli programu PowerShell.
W razie potrzeby uruchom następujące polecenia.
Aby włączyć regułę:
Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) Enable-NetFirewallRule -DisplayName "RemoteDesktop-UserMode-In-TCP" exit
Aby wyłączyć regułę:
Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) Disable-NetFirewallRule -DisplayName "RemoteDesktop-UserMode-In-TCP" exit
Środki zaradcze 3: polecenia narzędzia PSTools
Jeśli maszyna wirtualna jest w trybie online i może być dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz wykonać następujące środki zaradcze przy użyciu innej maszyny wirtualnej.
Na maszynie wirtualnej rozwiązywania problemów pobierz narzędzie PSTools.
Otwórz wystąpienie usługi CMD i uzyskaj dostęp do maszyny wirtualnej za pośrednictwem wewnętrznego adresu IP (DIP).
Aby włączyć regułę:
psexec \\<DIP> -u <username> cmd netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
Aby wyłączyć regułę:
psexec \\<DIP> -u <username> cmd netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
Środki zaradcze 4: Rejestr zdalny
Jeśli maszyna wirtualna jest w trybie online i może być dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz użyć rejestru zdalnego na innej maszynie wirtualnej.
Na maszynie wirtualnej rozwiązywania problemów uruchom Edytor rejestru (regedit.exe), a następnie wybierz pozycję Plik>Połącz rejestr sieci.
Otwórz gałąź TARGET MACHINE\SYSTEM, a następnie określ następujące wartości:
Aby włączyć regułę, otwórz następującą wartość rejestru:
TARGET MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP
Następnie zmień wartość Active=FALSE na Active=TRUE w ciągu:
v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|
Aby wyłączyć regułę, otwórz następującą wartość rejestru:
TARGET MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP
Następnie zmień wartość Active =TRUE na Active=FALSE:
v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|
Uruchom ponownie maszynę wirtualną, aby zastosować zmiany.
Rozwiązywanie problemów w trybie offline
Jeśli nie możesz uzyskać dostępu do maszyny wirtualnej za pomocą żadnej metody, użycie rozszerzenia niestandardowego skryptu zakończy się niepowodzeniem i będzie konieczne działanie w trybie offline przez bezpośrednie działanie dysku systemowego.
Przed wykonaniem tych kroków wykonaj migawkę dysku systemowego maszyny wirtualnej, której dotyczy problem, jako kopię zapasową. Aby uzyskać więcej informacji, zobacz Migawka dysku.
Dołącz dysk systemowy do maszyny wirtualnej odzyskiwania.
Uruchom połączenie pulpitu zdalnego z maszyną wirtualną odzyskiwania.
Upewnij się, że dysk jest oflagowany jako Online w konsoli zarządzania dyskami. Należy pamiętać, że litera dysku przypisana do dołączonego dysku systemowego.
Przed wprowadzeniem jakichkolwiek zmian utwórz kopię folderu \windows\system32\config w przypadku konieczności wycofania zmian.
Na maszynie wirtualnej rozwiązywania problemów uruchom Edytor rejestru (regedit.exe).
Wyróżnij klucz HKEY_LOCAL_MACHINE, a następnie z menu wybierz pozycję Załaduj gałąź pliku>.
Znajdź i otwórz plik \windows\system32\config\SYSTEM.
Uwaga 16.
Zostanie wyświetlony monit o podanie nazwy. Wprowadź BROKENSYSTEM, a następnie rozwiń HKEY_LOCAL_MACHINE. Zostanie wyświetlony dodatkowy klucz o nazwie BROKENSYSTEM. W przypadku tego rozwiązywania problemów instalowania tych gałęzi problemów jako BROKENSYSTEM.
Wprowadź następujące zmiany w gałęzi BROKENSYSTEM:
Sprawdź, od którego klucza rejestru ControlSet uruchamiana jest maszyna wirtualna. Jego numer klucza zostanie wyświetlony w HKLM\BROKENSYSTEM\Select\Current.
Aby włączyć regułę, otwórz następującą wartość rejestru:
HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP
Następnie zmień wartość Active=FALSE na Active=True.
v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|
Aby wyłączyć regułę, otwórz następujący klucz rejestru:
HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP
Następnie zmień wartość Active=True na Active=FALSE.
v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|
Wybierz pozycję BROKENSYSTEM, a następnie wybierz pozycję Plik>Zwolnij gałąź Programu Hive z menu.
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 na temat platformy Azure.