Опцията --preproxy на curl се свързва със SOCKS прокси, преди да достигне HTTP или HTTPS прокси. Поддържа тази конкретна верига, а не произволен списък с прокси сървъри.

Пътят е клиент → SOCKS крайна точка → HTTP прокси → цел. Заменете двете документационни крайни точки в командата:

curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/

SOCKS услугата трябва да достига адреса и порта на HTTP проксито. След това HTTP проксито трябва да приеме заявката към целта. Ако второто прокси е зададено с име на хост, първият SOCKS режим определя къде се разрешава това име; числова крайна точка избягва тази справка.

Откриване на провалената стъпка

Първо потвърдете заявка през всяка крайна точка поотделно; за HTTP стъпката използвайте тест на HTTP прокси с времеви ограничения. Дори и двете да работят, комбинираният маршрут може да се провали, защото първото прокси не достига второто.

Четете подробната следа по реда на свързване. SOCKS грешка при достигане на второто прокси настъпва преди решението на HTTP проксито да приеме или откаже CONNECT към сайта. Запишете кое договаряне е неуспешно.

Кога допълнителната стъпка помага

Тази схема може да е полезна, когато разрешено HTTP прокси е достъпно през SOCKS път. Тя обаче добавя още една услуга и мрежов маршрут, които могат да се повредят или забавят връзката. Свързването на крайни точки от публичен списък с проксита не гарантира надеждност или анонимност и продължава да изисква доверие в страните, обработващи връзката.

--preproxy изисква curl 7.52.0 или по-нов; други приложения може да не поддържат същата схема.

Подобни статии