Цепочка прокси от SOCKS к HTTP в curl
Настройте поддерживаемую curl цепочку SOCKS→HTTP, определите порядок конечных точек и проверьте каждое звено отдельно.
Параметр --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 или новее; другие приложения могут не поддерживать такую схему.