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.

Artigos relacionados