La catena proxy da SOCKS a HTTP di curl
Configura la catena SOCKS-HTTP supportata da curl, identifica l’ordine degli endpoint e prova ogni passaggio prima di combinarli.
L’opzione --preproxy di curl si collega a un proxy SOCKS prima di raggiungere un proxy HTTP o HTTPS. Supporta questa catena specifica, non un elenco arbitrario di server proxy.
Il percorso è client → endpoint SOCKS → proxy HTTP → destinazione. Sostituisci entrambi gli endpoint di documentazione nel comando:
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
Il servizio SOCKS deve poter raggiungere l’indirizzo e la porta del proxy HTTP. Il proxy HTTP deve poi accettare la richiesta alla destinazione. Se il secondo proxy usa un nome host, la modalità del primo SOCKS determina dove viene risolto quel nome; un endpoint numerico evita la ricerca.
Individuare il passaggio che fallisce
Verifica prima una richiesta attraverso ciascun endpoint separatamente; per il passaggio HTTP usa un test del proxy HTTP con limiti di tempo. Anche se entrambi funzionano, il percorso combinato può fallire perché il primo proxy non raggiunge il secondo.
Leggi la traccia dettagliata nell’ordine delle connessioni. Un errore SOCKS mentre si raggiunge il secondo proxy precede la decisione del proxy HTTP di accettare o rifiutare CONNECT verso il sito. Registra quale handshake è fallito.
Quando è utile il passaggio aggiuntivo
Questa configurazione può servire quando un proxy HTTP autorizzato è raggiungibile tramite un percorso SOCKS. Aggiunge anche un altro servizio e un altro percorso di rete che possono fallire o introdurre ritardi. Concatenare endpoint da un elenco pubblico di proxy non garantisce affidabilità né anonimato e richiede comunque fiducia nelle parti che gestiscono la connessione.
--preproxy richiede curl 7.52.0 o successivo; altre applicazioni potrebbero non supportare la stessa configurazione.