Посібник для розробників · 2 хв читання

Як використовувати проксі з curl

curl має вбудовану підтримку проксі: кілька прапорців направляють будь-який запит через HTTP- або SOCKS5-ендпоінт. Цей посібник надає команди для копіювання-вставки для вашого проксі s4m, охоплюючи автентифікацію, HTTPS, змінні середовища та як підтвердити вашу вихідну IP.

Навіщо пускати curl через проксі

Коли curl ходить напряму, сервер призначення бачить у з'єднанні справжню IP-адресу вашої машини. Якщо пустити запит через прямий проксі, у ланцюжку з'являється посередник: призначення тепер бачить адресу проксі, а ваша власна в обміні не фігурує. У цьому й уся суть проксіювання автоматизованого трафіку — ви ховаєте справжню IP того хоста, який насправді робить запит, і ваш основний сервер лишається поза увагою третіх сторін.

Платні проксі s4m — це дата-центрові SOCKS5 і HTTP-ендпоінти з авторизацією, з тарифікацією за гігабайти. Така модель добре лягає на скрипти, тестові прогони скраперів, CI-конвеєри й запити до API зі стабільної адреси. Якщо ж вам треба провести через тунель усі застосунки машини за фіксовану місячну плату (а не за гігабайти), кращим інструментом зазвичай буде з'єднання WireGuard VPN — порівняйте оплату за трафік проксі й фіксовані тарифи VPN на сторінці тарифів. Для швидких одноразових перевірок є безкоштовний публічний список проксі: це сторонні проксі, які s4m постійно перевіряє, але користуватися ними ви можете суто на власний ризик — ми їх не тримаємо.

curl розуміє обидва протоколи проксі з коробки, тож жодних додаткових інструментів не потрібно — ви міняєте один прапорець або схему URL. Практичні відмінності:

АспектHTTP-проксі (порт 3128)SOCKS5-проксі (порт 1080)
Синтаксис curl-x http://...:3128-x socks5h://...:1080
Що вмієHTTP і HTTPS (через CONNECT)Будь-яке TCP-з'єднання
Віддалений DNSТак, резолвить проксіТак, із socks5h:// або --socks5-hostname
АвторизаціяUSER:PASSUSER:PASS

Беріть HTTP, коли вам потрібен лише вебтрафік; беріть SOCKS5, коли потрібен віддалений DNS або треба провести не-HTTP протокол.

Основні прапорці: -x, --socks5-hostname та автентифікація

Кожен приклад спрямований на ваш ендпоінт s4m за адресою proxy.s4m.online — порт 3128 для HTTP, 1080 для SOCKS5 — де USER:PASS замінює ваші справжні облікові дані.

bash
# 1) HTTP/HTTPS through the HTTP proxy (port 3128)
#    curl auto-issues CONNECT for https:// URLs, so TLS stays end-to-end
curl -x http://USER:[email protected]:3128 https://example.com

# 2) SOCKS5 with remote DNS (port 1080)
#    socks5h:// resolves the hostname AT the proxy (avoids local DNS leaks)
curl -x socks5h://USER:[email protected]:1080 https://example.com

# 3) Same SOCKS5 call using dedicated flags instead of a URL scheme
curl --socks5-hostname proxy.s4m.online:1080 \
     --proxy-user USER:PASS \
     https://example.com

# 4) Keep credentials out of the proxy URL with -U / --proxy-user
curl -x http://proxy.s4m.online:3128 -U USER:PASS https://example.com

# 5) --proxy is just the long form of -x
curl --proxy http://USER:[email protected]:3128 https://example.com

Налаштуйте один раз за допомогою змінних середовища проксі

Замість додавання -x до кожної команди, експортуйте проксі один раз, і нехай curl використовує його впродовж усієї сесії оболонки.

bash
# curl reads http_proxy in LOWERCASE only (a historical CGI safeguard);
# HTTPS_PROXY, ALL_PROXY and NO_PROXY work in either case.
export http_proxy="http://USER:[email protected]:3128"
export HTTPS_PROXY="http://USER:[email protected]:3128"

# No -x needed now:
curl https://example.com

# Prefer a SOCKS5 endpoint for everything instead:
export ALL_PROXY="socks5h://USER:[email protected]:1080"

# Let some hosts bypass the proxy entirely:
export NO_PROXY="localhost,127.0.0.1,.internal.example"

# Confirm the exit IP, then clean up:
curl https://api.ipify.org; echo
unset http_proxy HTTPS_PROXY ALL_PROXY NO_PROXY

Перевірте вихідну IP та поширені підводні камені

Найшвидший спосіб підтвердити, що трафік справді виходить через проксі, — запитати ехо-сервіс, яку IP він бачить. Виконайте той самий запит із -x і без нього та порівняйте результати.

Без проксі ви отримаєте власну адресу вашої машини; з ним ви маєте отримати вихідну адресу s4m. Якщо обидві однакові, проксі не застосовується — перевірте ще раз схему, порт і чи потрібне URL-кодування ваших облікових даних.

  • Облікові дані із символами: кодуйте у відсотках символи на кшталт @ або : всередині USER чи PASS, або уникніть проблеми повністю, передавши їх через --proxy-user.
  • Витоки DNS у SOCKS: використовуйте socks5h:// або --socks5-hostname, щоб резолвінг відбувався на проксі, а не на вашому локальному резолвері.
  • 407 Proxy Authentication Required: пара USER:PASS відсутня або неправильна для цього ендпоінта.
  • Реальність дата-центру: проксі s4m — це IP дата-центрів, тож сайт, який спеціально блокує діапазони дата-центрів, все одно розпізнає їх як такі.
Поділитися сторінкою
FAQ

Відповіді на питання

Чи слід використовувати socks5:// або socks5h:// з curl?

Віддавайте перевагу socks5h:// (або прапорцю --socks5-hostname). Він виконує резолвінг цільового хоста на проксі, тож ваш локальний DNS-сервер ніколи не бачить запиту. Звичайний socks5:// спочатку виконує резолвінг локально, що може розкрити призначення і задіяти ваш власний резолвер.

Чи працює HTTPS через HTTP-проксі?

Так, і додаткові прапорці не потрібні. Для URL https:// curl надсилає HTTP CONNECT на проксі й тунелює TLS наскрізь, тож проксі передає лише зашифрований потік (він бачить хост через SNI, а не вміст сторінки).

Чи є проксі s4m резидентними?

Ні. Платні проксі s4m — це автентифіковані дата-центрові SOCKS5- та HTTP-ендпойнти. Вони стабільні та вимірювані за гігабайтом, але діапазони дата-центрів розпізнаються як IP дата-центру, тож вони не пройдуть за домашнє з'єднання.

Чому моя змінна HTTP_PROXY ігнорується?

curl читає змінну http_proxy лише в нижньому регістрі — це давній захист від ін'єкції CGI-заголовків. HTTPS_PROXY, ALL_PROXY і NO_PROXY читаються в будь-якому регістрі. Використовуйте http_proxy в нижньому регістрі або просто передавайте -x у командному рядку.

Чи можу я завжди виходити з однієї й тієї ж IP?

Так, із додатковою опцією виділеної персональної IP. Це статична адреса, яка належить лише вам, її можна прив'язати до вашого проксі (чи VPN); при цьому виділення IP залишається прив’язаним до вашого акаунта s4m. Докладніше — на сторінці тарифів.

Отримайте облікові дані проксі за лічені хвилини

Створіть безкоштовний акаунт s4m, щоб отримати автентифіковані SOCKS5 та HTTP ендпоінти з трафіком, що тарифікується за фактом використання, а також необов'язковий виділений IP. Підтримуються анонімна реєстрація й оплата криптою, і ви можете протестувати прапорці вище.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.