Використання проксі з cURL
cURL — це потужна утиліта командного рядка для HTTP. Вона чудово підтримує всі типи проксі.
Базовий синтаксис
curl -x [protocol://]host:port URL
HTTP Проксі
# Простий запит через проксі
curl -x http://proxy.example.com:8080 https://httpbin.org/ip
# З автентифікацією
curl -x http://user:password@proxy.example.com:8080 https://httpbin.org/ip
# Або окремо
curl -x http://proxy.example.com:8080 -U user:password https://httpbin.org/ip
HTTPS Проксі
curl -x https://proxy.example.com:8080 https://httpbin.org/ip
SOCKS Проксі
# SOCKS4
curl --socks4 proxy.example.com:1080 https://httpbin.org/ip
# SOCKS4A (DNS через проксі)
curl --socks4a proxy.example.com:1080 https://httpbin.org/ip
# SOCKS5
curl --socks5 proxy.example.com:1080 https://httpbin.org/ip
# SOCKS5 з DNS через проксі (рекомендовано)
curl --socks5-hostname proxy.example.com:1080 https://httpbin.org/ip
Змінні середовища
# Встановити проксі глобально
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
# Тепер усі запити йдуть через проксі
curl https://httpbin.org/ip
# Ігнорувати проксі для певних хостів
export no_proxy=localhost,127.0.0.1,.internal.com
Корисні опції
# Показати час з'єднання
curl -x http://proxy:8080 -w "Time: %{time_total}s\n" https://httpbin.org/ip
# Ігнорувати помилки SSL
curl -x http://proxy:8080 -k https://example.com
# Встановити тайм-аут
curl -x http://proxy:8080 --connect-timeout 10 https://httpbin.org/ip
# Слідувати перенаправленням
curl -x http://proxy:8080 -L https://httpbin.org/redirect/3
# Зберегти файли cookie
curl -x http://proxy:8080 -c cookies.txt https://example.com
# Надіслати POST-запит
curl -x http://proxy:8080 -X POST -d "data=value" https://httpbin.org/post
Скрипт перевірки списку проксі
#!/bin/bash
while read proxy; do
result=$(curl -x "$proxy" -s --connect-timeout 5 https://httpbin.org/ip)
if [ $? -eq 0 ]; then
echo "[OK] $proxy"
else
echo "[FAIL] $proxy"
fi
done < proxies.txt
Відлагодження
# Детальний вивід
curl -x http://proxy:8080 -v https://httpbin.org/ip
# Показати лише заголовки
curl -x http://proxy:8080 -I https://httpbin.org/ip