Когда вы осознанно выбираете обработчик клиента Guzzle, стек на основе cURL может использовать SOCKS:

$stack = \GuzzleHttp\HandlerStack::create(
    new \GuzzleHttp\Handler\CurlHandler()
);

$client = new \GuzzleHttp\Client([
    'handler' => $stack,
    'proxy' => 'socks5h://proxy.example.net:1080',
]);

socks5h просит прокси разрешить имя назначения. Guzzle передаёт конечную точку в libcurl, поэтому загруженная сборка libcurl должна поддерживать этот протокол. Список SOCKS5-прокси предоставляет публичные кандидаты конечных точек для URL прокси клиента.

Если у приложения уже есть стек обработчиков, проверьте его нижележащий транспорт, прежде чем заменять его и терять промежуточное ПО. Обработчик, ограниченный HTTP-потоками PHP, не может реализовать SOCKS только потому, что клиент получает эту опцию.

Проверьте процесс, выполняющий запрос. CLI PHP и PHP-FPM могут загружать разные файлы конфигурации и расширения; наличие cURL в одном не доказывает его доступность в другом.

Похожие статьи