Risolvere i problemi di connettività delle applicazioni in macchine virtuali in Azure
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows
Ci sono varie ragioni alla base dell'impossibilità di avviare o di connettersi a un'applicazione in esecuzione su una macchina virtuale (VM) di Azure. I motivi includono un'applicazione non in esecuzione o in attesa sulle porte previste, la porta di ascolto bloccata o regole di rete che non consentono la trasmissione corretta del traffico all'applicazione. In questo articolo viene descritto un approccio metodico per rilevare e correggere il problema.
Se si sono verificati problemi durante la connessione alla VM tramite RDP o SSH, consultare prima uno dei seguenti articoli:
- Risolvere i problemi di connessioni Desktop remoto a una macchina virtuale di Azure che esegue Windows
- Risolvere i problemi relativi alle connessioni Secure Shell (SSH) a una macchina virtuale di Azure basata su Linux
Se in qualsiasi punto dell'articolo sono necessarie altre informazioni, è possibile contattare gli esperti di Azure nei forum MSDN e overflow dello stack relativi ad Azure. In alternativa, è anche possibile archiviare un evento imprevisto di supporto tecnico di Azure. Accedere al sito del supporto di Azure e selezionare Ottenere supporto.
Passaggi rapidi per la risoluzione dei problemi
Nel caso di problemi di connessione a un'applicazione, provare con i seguenti passaggi generali per la risoluzione dei problemi. Dopo ogni passaggio, provare a connettersi nuovamente all'applicazione:
- Riavviare la macchina virtuale
- Ricreare le regole endpoint/firewall/gruppo di sicurezza di rete (NSG)
- Connettersi da un percorso diverso, ad esempio da una diversa rete virtuale di Azure
- Ridistribuire la macchina virtuale
- Ricreare la macchina virtuale
Per ulteriori informazioni, vedere Risoluzione dei problemi di connettività dell’Endpoint (errori RDP/SSH/HTTP, ecc.).
Panoramica dettagliata della risoluzione dei problemi
Esistono quattro aree principali per risolvere i problemi di accesso di un'applicazione che è in esecuzione in una macchina virtuale di Azure.
- L’applicazione in esecuzione nella macchina virtuale di Azure.
- L'applicazione viene eseguita correttamente?
- La macchina virtuale di Azure.
- La macchina virtuale viene eseguita correttamente e soddisfa le richieste?
- Endpoint di rete di Azure.
- Endpoint di servizio cloud per le macchine virtuali nel modello di distribuzione classica.
- Gruppi di sicurezza di rete e regole NAT in ingresso per le macchine virtuali nel modello di distribuzione Resource Manager.
- Il traffico riesce a fluire dagli utenti alla macchina virtuale/applicazione sulle porte previste?
- Il dispositivo periferico di Internet.
- Le regole del firewall applicate impediscono al traffico di fluire in modo corretto?
Per i computer client che accedono all'applicazione tramite una connessione site-to-site VPN o ExpressRoute, le principali aree che possono causare problemi sono l'applicazione e la macchina virtuale di Azure.
Per determinare l'origine del problema e la sua risoluzione, attenersi alla seguente procedura.
Passaggio 1: accedere all'applicazione dalla VM di destinazione
Provare ad accedere all'applicazione con il programma client appropriato dalla macchina virtuale in cui è in esecuzione. Usare il nome host locale, l'indirizzo IP locale o l'indirizzo di loopback (127.0.0.1).
Ad esempio, se l'applicazione è un server Web, aprire un browser nella VM e provare ad accedere a una pagina Web ospitata nella VM.
Se è possibile accedere all'applicazione, passare al Passaggio 2.
Se non è possibile accedere all'applicazione, verificare le seguenti impostazioni:
- Che l’applicazione sia in esecuzione nella macchina virtuale.
- Che l'applicazione sia in ascolto sulle porte TCP e UDP previste.
Nelle macchine virtuali basate su Windows o Linux, utilizzare il comando netstat - a per visualizzare le porte di ascolto attive. Esaminare l'output per le porte previste sulle quali l’applicazione dovrebbe essere in ascolto. Riavviare l'applicazione oppure configurarla per usare le porte previste in base alle esigenze e provare di nuovo ad accedere all'applicazione in locale.
Passaggio 2: accedere all'applicazione da un'altra VM della stessa rete virtuale
Provare ad accedere all'applicazione da una macchina virtuale diversa, ma nella stessa rete virtuale, usando il nome host della macchina virtuale o l'indirizzo IP pubblico, privato o del provider assegnato da Azure. Per le macchine virtuali create con il modello di distribuzione classica, non usare l'indirizzo IP pubblico del servizio cloud.
Ad esempio, se l'applicazione è un server Web, provare ad accedere a una pagina Web da un browser presente in un'altra macchina virtuale nella stessa rete virtuale.
Se è possibile accedere all'applicazione, passare al Passaggio 3.
Se non è possibile accedere all'applicazione, verificare le seguenti impostazioni:
- Il firewall host nella macchina virtuale di destinazione consente il traffico delle richieste in ingresso e delle risposte in uscita.
- Il software per il rilevamento intrusione o il monitoraggio di rete in esecuzione nella macchina virtuale di destinazione consente il traffico.
- Servizi cloud endpoint o gruppi di sicurezza di rete consentono il traffico:
- Un componente separato in esecuzione nella macchina virtuale nel percorso tra la macchina virtuale di test e la macchina virtuale, ad esempio un servizio di bilanciamento del carico o un firewall, consente il traffico.
In una macchina virtuale basata su Windows, utilizzare Windows Firewall con sicurezza avanzata per determinare se le regole del firewall escludono il traffico in entrata e in uscita dell'applicazione.
Passaggio 3: accedere all'applicazione dall'esterno della rete virtuale
Provare ad accedere all'applicazione da un computer all'esterno della rete virtuale come VM in cui è in esecuzione l'applicazione. Usare una rete diversa come computer client originale.
Ad esempio, se l'applicazione è un server web, tentare di accedere a una pagina web da un browser in esecuzione su un computer che non è presente nella rete virtuale.
Se non è possibile accedere all'applicazione, verificare le seguenti impostazioni:
VM create con il modello di distribuzione classica:
- Verificare che la configurazione dell'endpoint per la VM consenta il traffico in ingresso, in particolare il protocollo (TCP o UDP) e i numeri di porta pubblica e privata.
- Verificare che gli elenchi di controllo di accesso (ACL) nell'endpoint non impediscano il traffico in ingresso da Internet.
- Per altre informazioni, vedere Come configurare gli endpoint in una macchina virtuale.
Per le VM create con il modello di distribuzione di Resource Manager:
- Verificare che la configurazione della regola NAT in ingresso consenta il traffico in ingresso, in particolare il protocollo (TCP o UDP) e i numeri di porta pubblica e privata.
- Verificare che i gruppi di sicurezza di rete consentano il traffico della richiesta in ingresso e della risposta in uscita.
- Per altre informazioni, vedere Informazioni sui gruppi di sicurezza di rete
Se la macchina virtuale o un endpoint è un membro di un set con carico bilanciato:
- Verificare che il protocollo di probe (TCP o UDP) e il numero di porta siano corretti.
- Se il protocollo probe e la porta sono diversi dal protocollo e dalla porta del set con carico bilanciato:
- Verificare che l'applicazione sia in ascolto sul protocollo probe (TCP o UDP) e il numero di porta. Usare netstat –a nella VM di destinazione.
- Verificare che il firewall host nella macchina virtuale di destinazione consenta il traffico delle richieste probe in ingresso e delle risposte probe in uscita.
Se è possibile accedere all'applicazione, verificare che il dispositivo periferico di Internet consenta:
- Il traffico della richiesta dell’applicazione in uscita dal computer client per la macchina virtuale di Azure.
- Il traffico di risposta dell’applicazione in ingresso dalla macchina virtuale di Azure.
Passaggio 4 Se non è possibile accedere all'applicazione, usare Verifica IP per controllare le impostazioni
Per altre informazioni, vedere Panoramica del monitoraggio della rete in Azure.
Risorse aggiuntive
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.