Rozwiązywanie problemów z siecią
Problemy z siecią mogą być notorycznie trudne do zdiagnozowania i rozwiązania. Na przykład może się okazać, że sieć Wi-Fi działa prawidłowo lokalnie, ale jest odłączona od Internetu. W takim przypadku może się okazać, że urządzenie usługi Azure Sphere nie jest poprawnie aktualizowane. Ten temat zawiera sugestie, które mogą pomóc w diagnozowaniu problemów z siecią.
Sprawdzanie stanu interfejsu sieciowego
Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell, wiersza polecenia systemu Windows lub powłoki poleceń systemu Linux.
Uruchom polecenie az sphere device network list-interfaces , aby wyświetlić szczegóły interfejsów sieciowych dołączonego urządzenia.
W danych wyjściowych zostaną wyświetlone wszystkie interfejsy skonfigurowane dla urządzenia. Dla każdego interfejsu na urządzeniu dane wyjściowe przedstawiają następujące dane:
[ { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "azspheresvc", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "192.168.35.2" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "b2:30:bb:f0:d1:44", "interfaceName": "eth0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "lo", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "127.0.0.1" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "00:02:b5:03:69:ea", "interfaceName": "wlan0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" } ]
Sprawdź, czy następujące ustawienia interfejsu mają wartość True.
Interfejs sieciowy w górę. Jeśli to ustawienie ma wartość False:
- Sprawdź, czy urządzenia lokalne korzystające z punktu dostępu są połączone. Aby uzyskać więcej informacji, zobacz funkcja Networking_IsNetworkingReady.
- Sprawdź, czy interfejs sieciowy jest włączony. Wymagany interfejs można włączyć za pomocą polecenia az sphere device network enable lub przy użyciu interfejsu API funkcji Networking_SetInterfaceState.
Połączono z siecią. Jeśli to ustawienie ma wartość False:
- Uruchom polecenie az sphere device wifi show-status , aby sprawdzić, czy wartość SSID sieci Wi-Fi jest zgodna z ustawieniami sieci Wi-Fi urządzenia.
- Skanuj sieci, aby sprawdzić, czy identyfikator SSID w ustawieniach urządzenia jest zgodny z identyfikatorem SSID w sieci. Aby uzyskać więcej informacji, zobacz polecenie skanowania sieci Wi-Fi.
- Jeśli identyfikator SSID dla sieci Wi-Fi jest ukryty, a aplikacja opiera się na docelowym skanowaniu, sprawdź, czy skanowanie docelowe jest włączone.
Uzyskany adres IP. Jeśli to ustawienie ma wartość False:
- Poczekaj na nawiązanie połączenia.
- Sprawdź sieć, aby sprawdzić, czy punkt dostępu i inne urządzenia w sieci są w pełni połączone. Aby uzyskać więcej informacji, zobacz funkcja Networking_IsNetworkingReady.
- Sprawdź zakres dozwolonych adresów IP lub limit dozwolonych połączeń w punkcie dostępu i sieci.
Połączone z Internetem. Jeśli to ustawienie ma wartość False:
- Sprawdź, czy sieć jest połączona z Internetem.
Weryfikowanie stanu sieci Wi-Fi
- Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell, wiersza polecenia systemu Windows lub powłoki poleceń systemu Linux.
- Uruchom polecenie az sphere device wifi show-status , aby wyświetlić informacje o bieżącym połączeniu sieci Wi-Fi na urządzeniu.
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
az sphere device wifi show-status
{
"SSID": "MSFTGUEST",
"configurationState": "enabled",
"connectionState": "connected",
"frequency": 5660,
"ipAddress": "10.106.106.40",
"keyManagement": "NONE",
"macAddress": "00:02:b5:03:69:ea",
"mode": "station",
"securityState": "open",
"wpaState": "COMPLETED"
}
Jeśli stan Połączenia jest ustawiony na rozłączony, włącz sieć Wi-Fi na urządzeniu.
Weryfikowanie stanu sieci
Uruchom polecenie az sphere device network show-status , aby wyświetlić stan sieci dla dołączonego urządzenia.
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
az sphere device network show-status
{
"deviceAuthenticationIsReady": false,
"networkTimeSync": "incomplete",
"proxy": "disabled"
}
- Jeśli uwierzytelnianie urządzenia jest gotowe , zwraca wartość False,
- Uruchom ponownie urządzenie i spróbuj ponownie wykonać polecenie.
- Upewnij się, że sieć jest skonfigurowana tak, aby zezwalała na ruch przychodzący i wychodzący. Aby uzyskać więcej informacji, zobacz Porty i protokoły.
- Jeśli stan synchronizacji czasu sieciowego zwraca wartość Niekompletne,
- Poczekaj na nawiązanie połączenia.
- Upewnij się, że sieć jest skonfigurowana tak, aby zezwalała na ruch przychodzący i wychodzący. Aby uzyskać więcej informacji, zobacz Porty i protokoły.
Weryfikowanie ustawień zapory
Jeśli aplikacja nie może nawiązać połączenia z hostem zdalnym:
- Sprawdź ustawienia zapory aplikacji.
Manifest aplikacji musi określać nazwy hostów lub adresy IP, z którymi aplikacja może się łączyć, ustawiając
AllowedConnections
możliwość. - Jeśli aplikacja została skonfigurowana do wykonywania odnajdywania usług, oprócz wpisów w manifeście aplikacji odnalezione punkty końcowe powinny być również wymienione w konfiguracji zapory.
Jeśli hosty zdalne nie mogą nawiązać połączenia z aplikacją serwera:
- Sprawdź ustawienia zapory aplikacji.
Manifest aplikacji musi określać porty UDP i TCP, do których aplikacja jest otwarta dla połączeń przychodzących, ustawiając
AllowedTcpServerPorts
funkcje iAllowedUdpServerPorts
.
Jeśli nadal występują problemy:
- Uruchom polecenie az sphere device network list-firewall-rules i sprawdź, czy adres IP w regułach zapory i plik manifestu aplikacji są zgodne.
- Sprawdź, czy domyślne połączenia systemowe są domyślnie obecne.
Uzyskiwanie diagnostyki sieci
Gdy wystąpi awaria sieci, możesz uzyskać informacje diagnostyczne o awarii na dwa sposoby: za pośrednictwem wywołania interfejsu API WifiConfig i z wiersza polecenia.
Aplikacja wysokiego poziomu może wywołać WifiConfig_GetNetworkDiagnostics w celu zebrania informacji o problemie. Ta funkcja zwraca strukturę zawierającą WifiConfig_NetworkDiagnostics
szczegółowe informacje o najnowszej awarii w określonej sieci. Połącz informacje ze struktury diagnostyki z poradami, które należy wykonać, aby zdiagnozować i odzyskać dane po typowych awariach sieci.
W przykładzie WiFi_HighLevelApp pokazano, jak korzystać z diagnostyki.
Możesz również użyć polecenia az sphere device network show-diagnostics , aby wyświetlić informacje diagnostyczne dotyczące ostatniego błędu.
Nieprawidłowe połączenie sieciowe
Jeśli urządzenie jest połączone z nieprawidłową siecią lub jest połączone, ale z nieprawidłowymi atrybutami, upewnij się, że konfiguracja sieci jest poprawna. Jeśli konfiguracja została zmieniona, należy ją ponownie załadować. W aplikacji wywołaj WifiConfig_ReloadConfig lub w wierszu polecenia, użyj polecenia az sphere device wifi reload-config, aby ponownie załadować bieżącą konfigurację. Aby upewnić się, że konfiguracja sieci będzie się powtarzać po ponownym uruchomieniu, aplikacja może wywołać WifiConfig_PersistConfig.
Problemy z aktualizowaniem certyfikatu głównego urzędu certyfikacji
Jeśli urządzenie nie może nawiązać połączenia z siecią protokołu EAP-TLS po zaktualizowaniu certyfikatu głównego urzędu certyfikacji, zacznij od stanu zwróconego przez funkcję WifiConfig_SetNetworkEnabled .
Jeśli stan wskazuje błąd certyfikatu głównego urzędu certyfikacji, jedną z następujących przyczyn może być:
- Czy stary główny urząd certyfikacji 1 wygasł lub zmienił się na serwerze RADIUS podczas procesu aktualizacji? Jeśli tak, nowy główny urząd certyfikacji 2 może być niepoprawny.
- Czy po stronie serwera wystąpił inny błąd? Sprawdź się z administratorem sieci. Administrator mógł użyć innego lub nieprawidłowego urzędu certyfikacji i może być konieczne rozwiązanie tego problemu centralnie.
Jeśli stan wskazuje błąd certyfikatu klienta:
- Czy konfiguracja nowej sieci Network2 nie została zsynchronizowana z właściwościami Network1? Jeśli właściwości uległy zmianie w sieci 1, ale próbowano nawiązać połączenie przy użyciu nieaktualnych właściwości w sieci Network2, połączenie z siecią Network2 może zakończyć się niepowodzeniem. Upewnij się, że właściwości klucza są identyczne dla dwóch sieci.
- Czy certyfikat klienta zmienił się podczas procesu aktualizacji sieci? Sprawdź certyfikaty skojarzone z siecią Network1 i Network2 i upewnij się, że są one takie same. Aplikacja może używać funkcji w interfejsie API magazynu certyfikatów w celu sprawdzenia szczegółów certyfikatu.
Jeśli zarówno główny urząd certyfikacji, jak i certyfikat klienta są poprawne, błąd może być związany z punktem dostępu sieci Wi-Fi lub innym problemem.
Kontynuuj sprawdzanie danych zwróconych przez WifiConfig_GetNetworkDiagnostics po każdej nieudanej próbie uzyskania dodatkowych informacji na temat problemu.
Problemy z aktualizowaniem certyfikatu klienta
Jeśli urządzenie nie może nawiązać połączenia z siecią protokołu EAP-TLS po zaktualizowaniu certyfikatu klienta, zacznij od stanu zwróconego przez funkcję WifiConfig_SetNetworkEnabled .
Jeśli stan wskazuje błąd certyfikatu klienta:
- Wróć do poprzedniego certyfikatu i spróbuj ponownie nawiązać połączenie. Powodzenie wskazuje problem z nowym certyfikatem klienta; błąd wskazuje, że nowy certyfikat jest nieprawidłowy lub stary certyfikat wygasł w międzyczasie.
Jeśli stan wskazuje inny typ błędu:
- Czy w sieci występują inne problemy? Kontynuuj próbę nawiązania połączenia z każdym certyfikatem klienta.
Kontynuuj sprawdzanie danych zwróconych przez WifiConfig_GetNetworkDiagnostics po każdej nieudanej próbie uzyskania dodatkowych informacji na temat problemu.
Problemy z nawiązywaniem połączenia z siecią 5GHz, która nie emituje identyfikatora SSID
Istnieje znany problem w mt3620, w którym urządzenia mogą nie być w stanie nawiązać połączenia z sieciami 5GHz, które nie emitują identyfikatora SSID, mimo że korzystają z skanowania docelowego. Zalecamy wyłączenie emisji SSID lub wykonanie tej czynności w sieci tylko 2,4 GHz.