A opción --preproxy de curl conecta cun proxy SOCKS antes de chegar a un proxy HTTP ou HTTPS. Admite esta cadea concreta, non unha lista arbitraria de servidores proxy.

O camiño é cliente → extremo SOCKS → proxy HTTP → destino. Substitúe os dous extremos de documentación da orde:

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/

O servizo SOCKS debe poder chegar ao enderezo e ao porto do proxy HTTP. Despois, o proxy HTTP debe aceptar a petición ao destino. Se o segundo proxy usa un nome de host, o primeiro modo SOCKS determina onde se resolve ese nome; un extremo numérico evita esa consulta.

Atopar o salto que falla

Primeiro confirma unha petición a través de cada extremo por separado; para o salto HTTP usa unha proba de proxy HTTP con límites de tempo. Aínda que ambos funcionen, a ruta combinada pode fallar porque o primeiro proxy non chega ao segundo.

Le a traza detallada na orde de conexión. Un fallo SOCKS ao chegar ao segundo proxy ocorre antes da decisión do proxy HTTP de aceptar ou rexeitar CONNECT ao sitio web. Rexistra que negociación fallou.

Cando axuda o salto adicional

Esta disposición pode servir cando un proxy HTTP autorizado é accesible por un camiño SOCKS. Tamén engade outro servizo e outra ruta de rede que poden fallar ou introducir demora. Encadear extremos dunha lista pública de proxies non garante fiabilidade nin anonimato e segue a esixir confianza nas partes que xestionan a conexión.

--preproxy require curl 7.52.0 ou posterior; outras aplicacións poden non admitir a mesma disposición.

Artigos relacionados