Όταν επιλέγετε σκόπιμα τον handler ενός πελάτη 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 μεσολάβησης του πελάτη.

Αν η εφαρμογή έχει ήδη στοίβα handler, εξετάστε την υποκείμενη μεταφορά πριν την αντικαταστήσετε και χάσετε middleware. Ένας handler περιορισμένος σε ροές HTTP της PHP δεν μπορεί να υλοποιήσει SOCKS μόνο επειδή ο πελάτης λαμβάνει αυτή την επιλογή.

Ελέγξτε τη διεργασία που εκτελεί το αίτημα. Το CLI PHP και το PHP-FPM μπορούν να φορτώνουν διαφορετικά αρχεία ρυθμίσεων και επεκτάσεις· η παρουσία του cURL στο ένα δεν αποδεικνύει τη διαθεσιμότητά του στο άλλο.

Σχετικά άρθρα