Επιλογή του cURL handler του Guzzle για διακομιστή μεσολάβησης SOCKS
Ένας handler μόνο για ροές HTTP δεν μπορεί να αποκτήσει διαπραγμάτευση SOCKS από URL μεσολάβησης· επιλέξτε υποστηριζόμενη μεταφορά στο πραγματικό περιβάλλον PHP.
Όταν επιλέγετε σκόπιμα τον 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 στο ένα δεν αποδεικνύει τη διαθεσιμότητά του στο άλλο.