Escoller o xestor cURL de Guzzle para un proxy SOCKS
Un xestor limitado a fluxos HTTP non pode obter negociación SOCKS desde un URL de proxy; escolla un transporte compatible na contorna PHP real.
Cando escolle deliberadamente o xestor dun cliente Guzzle, unha pila baseada en cURL pode usar SOCKS:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h pide ao proxy que resolva o nome de destino. Guzzle pasa o extremo a libcurl, polo que a compilación de libcurl cargada debe admitir ese protocolo. A lista de proxies SOCKS5 fornece candidatos públicos de extremo para o URL de proxy do cliente.
Se a aplicación xa ten unha pila de xestores, examine o seu transporte subxacente antes de substituíla e perder middleware. Un xestor limitado aos fluxos HTTP de PHP non pode implementar SOCKS só porque o cliente reciba esta opción.
Comprobe o proceso que realiza a solicitude. A CLI de PHP e PHP-FPM poden cargar ficheiros de configuración e extensións distintos; que cURL apareza nun non demostra que estea dispoñible no outro.