Sostituisci 127.0.0.1:8080 con un endpoint del tuo servizio o della lista dei proxy HTTP ed esegui questo comando verso una destinazione HTTPS innocua:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

L’indirizzo di loopback indica un listener sulla tua macchina. Il comando lo seleziona esplicitamente, svuota l’elenco di esclusione di curl per questa chiamata e concede cinque secondi per stabilire la connessione e quindici secondi complessivi. Non modifica le impostazioni proxy del browser o del sistema.

Usa il vero eseguibile curl se la shell definisce curl come alias di un altro programma; curl --version identifica la build. Se il listener stesso richiede TLS, usa lo schema dell’URL del proxy indicato nella sua documentazione.

Leggi quattro risultati, non un solo segnale di successo

  1. Connessione al proxy scelto: indirizzo e porta sono raggiungibili.
  2. CONNECT accettato: il proxy ha aperto un tunnel verso la destinazione HTTPS.
  3. Certificato della destinazione verificato: TLS è stato completato con i controlli di attendibilità previsti.
  4. Risposta della destinazione ricevuta: esamina stato e contenuto per capire se il risultato soddisfa le esigenze dell’applicazione.

Un tunnel funzionante può essere seguito da un 403 o 429 della destinazione. curl può anche terminare con successo dopo aver ricevuto una risposta di errore HTTP: registra quindi sia lo stato della risposta sia l’esito di errore di curl. Una connessione TCP o un CONNECT riuscito, da soli, non bastano.

Un risultato compatto per confronti ripetuti

In una shell di tipo Unix, scarta il corpo e stampa stato del tunnel, stato della destinazione, peer della connessione e tempo trascorso:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect descrive la risposta del tunnel; http_code descrive la risposta HTTP finale. remote_ip è il peer a cui si connette curl, non una misurazione indipendente dell’indirizzo di uscita del proxy. Sugli altri sistemi sostituisci /dev/null oppure conserva il corpo della risposta.

Se il test fallisce, individua il passaggio di connessione o trasferimento non riuscito e confronta lo stesso obiettivo con un accesso diretto, dove quel percorso è consentito:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

--noproxy '*' evita i proxy. Se la verifica del certificato fallisce su entrambi i percorsi, è probabile un problema di attendibilità comune; se l’accesso diretto riesce ma CONNECT viene rifiutato, considera l’autenticazione o i criteri del proxy. Controlla l’output dettagliato prima di condividerlo, perché può contenere informazioni identificative.

Salva endpoint, destinazione e timestamp insieme al risultato. Questo documenta ciò che ha funzionato per quella richiesta; disponibilità futura, riservatezza e prestazioni sotto carico richiedono prove separate.

Articoli correlati