Come risolvere i problemi di un’app remota che funziona tramite IP ma non tramite dominio

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Se un'app funziona tramite IP ma non tramite dominio, il server è raggiungibile e il problema è solitamente nel DNS, nel routing basato sul nome host, nel TLS o nei reindirizzamenti.

L'accesso remoto tramite IP dimostra che un percorso di rete raggiunge il server domestico, ma una richiesta al dominio trasmette ulteriori informazioni sull'identità tramite il DNS, il nome del server TLS, l'intestazione HTTP Host e l'URL pubblico configurato nell'applicazione. La diagnosi più rapida consiste nel mantenere invariati client, porta e server, verificando ogni livello di identità nell'ordine invece di modificare contemporaneamente reverse proxy, certificato e record DNS.

Verifica che il test tramite IP raggiunga il servizio previsto

Annota l'indirizzo IP, la porta, il protocollo e la risposta esatti che funzionano da remoto. Controlla se l'IP apre l'applicazione reale, una pagina predefinita del reverse proxy, una pagina di accesso al router o un altro servizio che condivide lo stesso indirizzo pubblico.

Una guida al reverse proxy per homelab spiega che un proxy può ospitare diverse app sullo stesso indirizzo perché esamina l'intestazione Host richiesta prima di scegliere il servizio upstream.

Se l'IP raggiunge solo un sito predefinito, dimostra che il proxy è raggiungibile, ma non che il percorso dell'app di destinazione funzioni. Mantieni un indicatore di risposta noto, come il titolo della pagina o un'intestazione, in modo che i test successivi identifichino l'host virtuale corretto.

Confronta il DNS pubblico con l'indirizzo IP funzionante

Interroga il dominio tramite un nameserver autorevole e almeno un resolver ricorsivo esterno. Annota ogni risposta A e AAAA, il TTL e l'eventuale presenza di un CNAME che punti a un altro hostname.

Le guide all'hosting autonomo ricordano che le risposte memorizzate nella cache possono rimanere disponibili fino alla scadenza del TTL precedente, quindi una modifica recente può lasciare alcuni client diretti verso una destinazione DNS precedente anche dopo la correzione del record autorevole.

Se il record A differisce dall'IP funzionante, correggi il record o l'aggiornamento DDNS. Se A è corretto ma AAAA punta a un percorso IPv6 non raggiungibile, testa separatamente ciascuna famiglia di indirizzi e rimuovi o correggi il record non funzionante.

Connettiti all'IP funzionante mantenendo il dominio

Usa un client in grado di connettersi all'IP funzionante noto inviando il dominio come intestazione HTTP Host e come nome del server TLS. In questo modo cambi la destinazione senza eliminare l'identità prevista dal proxy e dal certificato.

Server Fault spiega che un reverse proxy HTTP può utilizzare l'intestazione Host per selezionare un percorso, proprio come gli host virtuali basati sul nome.

Se la richiesta con il dominio preservato funziona, il livello che non funziona è il DNS. Se raggiunge il proxy ma restituisce il sito sbagliato o un errore 404, controlla la corrispondenza dell'host virtuale e la priorità dei percorsi; se il TLS non riesce prima dell'HTTP, controlla SNI e la selezione del certificato.

-15% OFF

Controlla SNI TLS e l'identità del certificato

Confronta il certificato restituito per il dominio con quello restituito per l'IP nudo. Annota i nomi del soggetto, l'emittente, la scadenza e l'eventuale presenza di un certificato predefinito presentato dal proxy.

SNI trasporta il nome host nel ClientHello TLS prima della richiesta HTTP crittografata, consentendo al proxy di selezionare l'host virtuale sicuro. Di conseguenza, una richiesta basata solo sull'IP potrebbe non includere il nome host utilizzato durante la selezione TLS, anche quando raggiunge lo stesso listener.

Correggi il certificato del dominio e il percorso SNI invece di aspettarti un certificato per un IP privato o dinamico. Se davanti è presente una CDN o un proxy TCP, verifica che inoltri o termini SNI per il nome host previsto.

Verifica che il DNS interno ed esterno non inviino verso percorsi diversi

Confronta il risultato del dominio tramite rete mobile, un resolver pubblico e la LAN domestica. Lo split DNS può restituire intenzionalmente un indirizzo privato del proxy a casa e un indirizzo pubblico da remoto, ma entrambe le risposte devono raggiungere lo stesso percorso logico del nome host.

Una discussione su homelab di Level1Techs mostra che l'accesso locale al reverse proxy può richiedere una propria configurazione DNS quando il DNS pubblico e il routing domestico seguono percorsi interni ed esterni diversi.

Se solo un resolver restituisce l'indirizzo errato, correggi quella vista DNS. Se l'indirizzo pubblico funziona tramite IP ma il dominio non funziona ovunque, concentra l'attenzione su Host, SNI, certificato e identità dell'applicazione invece che sullo split DNS.

Controlla gli URL canonici e i reindirizzamenti prima di dichiarare risolto il problema DNS

Controlla ogni reindirizzamento dopo che il dominio raggiunge l'app. Il reverse proxy o l'applicazione potrebbero inviare i client verso un hostname interno, un dominio precedente, lo schema errato, una porta privata o un URL di callback obsoleto.

L'articolo di ZimaSpace sul fatto che lo split DNS possa risolvere un problema che si verifica solo all'interno della rete tratta il caso correlato in cui il nome host è corretto, ma il percorso varia in base alla posizione.

Il problema è risolto solo quando il DNS autorevole restituisce l'indirizzo previsto, il dominio seleziona il certificato e il percorso proxy corretti, i reindirizzamenti mantengono il nome host pubblico e l'intero flusso di lavoro remoto ha esito positivo senza sostituire il dominio con l'IP.

Supporto e consigli

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.