استخدام البروكسي مع cURL: دليل عملي للمطورين ومهندسي DevOps

دليل شامل لاستخدام البروكسي مع cURL على سطر الأوامر: تعلّم أعلام HTTP وSOCKS5، المصادقة، الاستهداف الجغرافي، متغيرات البيئة، دوران IP، ونصائح الإنتاج مع ProxyHat.

Using Proxies with cURL: A Practical Guide for Backend Engineers
En este artículo

إذا كنت مهندس خلفية أو متخصص DevOps تستخدم curl يوميًا لاختبار APIs أو جمع بيانات عامة، فإن استخدام البروكسي مع cURL يفتح لك إمكانيات واسعة: تخطّي حدود المعدل، إخفاء عنوان IP الأصلي، ومحاكاة طلبات من مواقع جغرافية مختلفة. في هذا الدليل نغطي كل ما تحتاجه — من الأعلام الأساسية إلى إعدادات الإنتاج المتقدمة — باستخدام بوابة ProxyHat gate.proxyhat.com.

أساسيات استخدام البروكسي مع cURL: الأعلام الأساسية

يدعم curl البروكسي عبر علم -x أو --proxy. بالنسبة لبروكسي HTTP، استخدم المنفذ 8080 على بوابة ProxyHat:

# بروكسي HTTP أساسي
curl -x http://gate.proxyhat.com:8080 https://httpbin.org/ip

# نفس الشيء بالشكل الكامل
curl --proxy http://gate.proxyhat.com:8080 https://httpbin.org/ip

بالنسبة لـ curl socks5 بروكسي، استخدم المنفذ 1080:

# SOCKS5 — حل DNS محليًا (قد يتسبب بتسريب)
curl --socks5 gate.proxyhat.com:1080 https://httpbin.org/ip

# SOCKS5h — حل DNS عند البروكسي (موصى به)
curl --socks5-hostname gate.proxyhat.com:1080 https://httpbin.org/ip
# أو بصيغة URL:
curl -x socks5h://gate.proxyhat.com:1080 https://httpbin.org/ip

لماذا socks5h؟ عند استخدام --socks5 العادي، يحل curl اسم النطاق محليًا ثم يرسل IP إلى البروكسي. هذا يعني أن مزود DNS الخاص بك يرى الهدف. مع socks5h:// أو --socks5-hostname، يُرسل اسم النطاق كما هو إلى البروكسي الذي يحلّه — مما يمنع تسريب DNS. اقرأ المزيد في وثائق curl الرسمية.

المصادقة والاستهداف الجغرافي في اسم المستخدم

بوابة ProxyHat تمرّر معلومات المصادقة والاستهداف الجغرافي داخل اسم المستخدم. هذا يعني أن curl with proxy authentication لا يتطلب أعلامًا إضافية — فقط اسم مستخدم منسّق.

# مصادقة أساسية
curl -x http://user:pass@gate.proxyhat.com:8080 https://httpbin.org/ip

# الاستهداف الجغرافي: الولايات المتحدة
curl -x http://user-country-US:pass@gate.proxyhat.com:8080 https://httpbin.org/ip

# مدينة محددة
curl -x http://user-country-DE-city-berlin:pass@gate.proxyhat.com:8080 https://httpbin.org/ip

# جلسة ثابتة (sticky session) لمدة تصل إلى 30 دقيقة
curl -x http://user-session-abc123:pass@gate.proxyhat.com:8080 https://httpbin.org/ip

# باستخدام --proxy-user
curl -x http://gate.proxyhat.com:8080 --proxy-user 'user-country-US-city-newyork:pass' https://httpbin.org/ip

الجلسة الثابتة مفيدة عندما يحتاج الموقع إلى ملف تعريف ارتباط (cookie) مرتبط بـ IP واحد عبر طلبات متعددة — مثل تسجيل الدخول ثم تصفّح صفحات.

متغيرات البيئة: HTTP_PROXY وHTTPS_PROXY وALL_PROXY

بدلًا من تمرير -x في كل مرة، يمكنك استخدام متغيرات البيئة. هذا هو متغير بيئة HTTPS_PROXY الأكثر شيوعًا:

# تعيين متغيرات البيئة في Bash
export HTTP_PROXY="http://user:pass@gate.proxyhat.com:8080"
export HTTPS_PROXY="http://user:pass@gate.proxyhat.com:8080"
export ALL_PROXY="socks5h://user:pass@gate.proxyhat.com:1080"
export NO_PROXY="localhost,127.0.0.1,::1,.internal.example.com"

# الآن curl يستخدم البروكسي تلقائيًا
curl https://httpbin.org/ip

NO_PROXY مهم: يمنع توجيه حركة المرور الداخلية عبر البروكسي. لاحظ أن curl يقرأ هذه المتغيرات بأحرف كبيرة وصغيرة، لكن الاتفاقية السائدة هي الأحرف الكبيرة. راجع توثيق GNU لاتفاقية متغيرات البروكسي.

ملف ~/.curlrc قابل لإعادة الاستخدام

# ~/.curlrc — يُقرأ تلقائيًا عند كل استدعاء curl
proxy = "http://user-country-US:pass@gate.proxyhat.com:8080"
compressed
silent
show-error
connect-timeout = 10
max-time = 30
retry = 3
retry-all-errors
user-agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36"

أو استخدم ملف تكوين مخصص مع علم -K:

# proxyhat.conf
proxy = "http://user-country-DE-city-berlin:pass@gate.proxyhat.com:8080"

# الاستخدام
curl -K proxyhat.conf https://httpbin.org/ip

البروكسي السكني مقابل بروكسي مراكز البيانات: متى تستخدم أيهما؟

بروكسي مراكز البيانات أسرع وأرخص، لكن المواقع الصعبة (متاجر البيع بالتجزئة، منصات التذاكر، محركات البحث) تكتشفها بسرعة لأن نطاقات IP الخاصة بمراكز البيانات معروفة. البروكسي السكني يستخدم عناوين IP مخصصة لمزودي خدمة الإنترنت المنزليين، مما يجعل الطلبات تبدو كأنها من مستخدم حقيقي.

المعياربروكسي مراكز البياناتبروكسي سكني (ProxyHat)
السرعةأسرع (~50ms زمن وصول)متوسط (~200ms زمن وصول)
معدل النجاح على المواقع الصعبة30–60%90–99%
التكلفةأقلأعلى
اكتشاف IPسهلصعب
الجلسات المتزامنةغير محدودة عمليًاحتى 100 جلسة متزامنة لكل خطة

مثال عملي: دوران IP عبر قائمة باستخدام Bash

#!/usr/bin/env bash
# rotate.sh — دوران عبر جلسات ثابتة مع إعادة المحاولة

set -euo pipefail

GATE="gate.proxyhat.com:8080"
USER="user"
PASS="pass"
TARGETS=("https://httpbin.org/ip" "https://httpbin.org/headers" "https://httpbin.org/user-agent")

i=0
while IFS= read -r url; do
  session="sess-$i-$(date +%s)"
  proxy_url="http://${USER}-session-${session}:${PASS}@${GATE}"
  
  curl -x "$proxy_url" \
    --retry 3 \
    --retry-all-errors \
    --retry-delay 2 \
    --connect-timeout 10 \
    --max-time 30 \
    --compressed \
    -w "\nHTTP %{http_code} | الوقت الكلي: %{time_total}s | IP الوكيل: %{remote_ip}\n" \
    "$url"
  echo "---"
  i=$((i + 1))
done <<EOF
$(printf '%s\n' "${TARGETS[@]}")
EOF

علم -w يطبع تشخيصات التوقيت — مفيد لقياس زمن الوصول الفعلي عبر البروكسي. علم --retry-all-errors متاح منذ curl 7.71.0 ويعيد المحاولة على أخطاء HTTP أيضًا، وليس فقط أخطاء الشبكة.

نصائح الإنتاج: TLS والرؤوس والتوازي

فرض TLS 1.3

# فرض TLS 1.3 لأقصى أمان وسرعة مصافحة
curl --tlsv1.3 -x http://user:pass@gate.proxyhat.com:8080 https://httpbin.org/ip

# أو في ~/.curlrc
tlsv1.3

TLS 1.3 يقلل دورات المصافحة من 2 إلى 1، مما يوفر ~100ms لكل اتصال جديد. هذا مهم عند إجراء آلاف الطلبات عبر البروكسي.

رؤوس مخصصة وضغط

curl -x http://user-country-US:pass@gate.proxyhat.com:8080 \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
  -H "Accept-Language: en-US,en;q=0.9" \
  --compressed \
  https://example.com

--compressed يطلب ضغط gzip/deflate/brotli ويُفك الضغط تلقائيًا — يقلل حجم النقل بنسبة تصل إلى 70% للنصوص.

التوازي مع xargs -P و curl --parallel

# الطريقة 1: xargs -P للتوازي
printf '%s\n' "https://httpbin.org/ip?1" "https://httpbin.org/ip?2" "https://httpbin.org/ip?3" \
  | xargs -P 5 -I {} curl -s -x http://user:pass@gate.proxyhat.com:8080 {}

# الطريقة 2: curl --parallel (منذ 7.66.0)
curl --parallel --parallel-immediate --parallel-max 10 \
  -x http://user:pass@gate.proxyhat.com:8080 \
  -o out1.html https://httpbin.org/ip?1 \
  -o out2.html https://httpbin.org/ip?2 \
  -o out3.html https://httpbin.org/ip?3

مع البروكسي السكني، ابدأ بـ 5–10 اتصالات متزامنة وراقب معدل النجاح. تجاوز 50 اتصالًا متزامنًا قد يثير أنظمة مكافحة البوت.

استخدام ProxyHat SDK مقابل curl الخام

كل الأمثلة أعلاه تستخدم curl الخام مع بوابة ProxyHat. توفر ProxyHat أيضًا SDK يغلّف نفس النقاط النهائية بواجهة برمجية أبسط — مفيد عند الانتقال من الاختبار على سطر الأوامر إلى تطبيق إنتاجي:

# curl الخام — مناسب للاختبار والسكربتات السريعة
curl -x http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080 \
  https://api.example.com/data

# ProxyHat SDK (Python) — مناسب للتطبيقات الإنتاجية
from proxyhat import Client

client = Client(username="user", password="pass", country="US", session="abc123")
response = client.get("https://api.example.com/data")
print(response.status_code, response.text)

كلاهما يصل إلى نفس البوابة gate.proxyhat.com:8080 — SDK يضيف إعادة محاولة تلقائية، وإدارة جلسات، وتسجيل. ابدأ بـ curl للنماذج الأولية، ثم انتقل إلى SDK عند الحاجة إلى موثوقية الإنتاج. راجع وثائق ProxyHat للتفاصيل.

الاعتبارات القانونية والأخلاقية

استخدام البروكسي لجمع البيانات العامة قانوني عمومًا، لكن السياق يهم:

  • الولايات المتحدة: قانون الاحتيال وإساءة استخدام الكمبيوتر (CFAA) يجرّم الوصول غير المصرّح به لأنظمة محمية. الوصول إلى صفحات عامة بدون تخطّي مصادقة عادةً ما يكون قانونيًا، لكن استشر محاميًا للحالات الحدودية.
  • الاتحاد الأوروبي: اللائحة العامة لحماية البيانات (GDPR) تحكم معالجة البيانات الشخصية. حتى البيانات العامة قد تخضع لقيود عند تخزينها أو معالجتها.
  • robots.txt: احترم توجيهات robots.txt للموقع. ليست ملزمة قانونيًا في كل الولايات القضائية، لكنها إشارة حسن نية.
  • شروط الخدمة: قراءة شروط استخدام الموقع. بعض المواقع تمنع الوصول الآلي صراحةً.
  • الأسلوب المفضل: إذا وفر الموقع واجهة API رسمية، استخدمها أولًا. البروكسي للحالات التي لا تتوفر فيها API أو تكون محدودة بشدة.

لمزيد من حالات الاستخدام المشروعة، راجع صفحة استخدامات جمع البيانات وتتبع نتائج البحث.

أخطاء شائعة وحالات حدية

  • تسريب DNS مع SOCKS5: استخدم socks5h:// أو --socks5-hostname دائمًا، وليس socks5:// العادي.
  • نسيان URL-encoding في اسم المستخدم: إذا كانت المدينة تحتوي على مسافات أو أحرف خاصة، استخدم ترميز URL. مثلًا: city-new%20york.
  • عدم تعيين NO_PROXY: الطلبات الداخلية قد تمر عبر البروكسي عن طريق الخطأ، مما يسبب تأخيرًا وأخطاء.
  • تجاهل --connect-timeout: بدون حد زمني، قد يعلق curl لعدة دقائق على بروكسي بطيء.
  • الإفراط في التوازي: 100+ اتصال متزامن من نفس بروكسي قد يثير أنظمة مكافحة البوت. ابدأ منخفضًا وارفع تدريجيًا.
  • عدم تدوير الجلسات: جلسة ثابتة واحدة لآلاف الطلبات = نفس IP طوال الوقت. استخدم معرّفات جلسات فريدة لكل دفعة.

النقاط الرئيسية

  • استخدم -x http://gate.proxyhat.com:8080 لبروكسي HTTP و--socks5-hostname gate.proxyhat.com:1080 لـ SOCKS5.
  • socks5h:// يحل DNS عند البروكسي — يمنع تسريب DNS.
  • المصادقة والاستهداف الجغرافي يمرّان في اسم المستخدم: user-country-US-city-newyork:pass.
  • متغيرات البيئة (HTTP_PROXY، HTTPS_PROXY، ALL_PROXY، NO_PROXY) تبسّط سير العمل.
  • البروكسي السكني يتفوق على بروكسي مراكز البيانات على المواقع الصعبة بمعدل نجاح 90–99% مقابل 30–60%.
  • استخدم --retry و--retry-all-errors و-w للتشخيص في الإنتاج.
  • ابدأ بـ curl للنماذج الأولية، انتقل إلى ProxyHat SDK للتطبيقات الإنتاجية.
  • احترم robots.txt وشروط الخدمة وGDPR — واستخدم API الرسمي عند توفره.

جاهز للبدء؟ استكشف خطط أسعار ProxyHat أو تصفّح المواقع المتاحة لاختيار الاستهداف الجغرافي المناسب.

Preguntas frecuentes

ما هو استخدام البروكسي مع cURL؟

استخدام البروكسي مع cURL يعني توجيه طلبات curl عبر خادم وسيط (بروكسي) بدلًا من الاتصال المباشر بالموقع الهدف. يتم ذلك عبر علم -x أو --proxy لبروكسي HTTP، أو --socks5-hostname لبروكسي SOCKS5. يتيح ذلك إخفاء عنوان IP الأصلي، وتوزيع الطلبات عبر عناوين متعددة، والاستهداف الجغرافي.

لماذا يهم استخدام البروكسي مع cURL لمستخدمي البروكسي؟

لأن cURL أداة قياسية لاختبار APIs وجمع البيانات من سطر الأوامر. بدون بروكسي، قد تواجه حظر IP أو حدود معدل صارمة. البروكسي السكني يوزع الطلبات عبر عناوين IP حقيقية، مما يرفع معدل النجاح من 30–60% إلى 90–99% على المواقع الصعبة، ويتيح محاكاة طلبات من مواقع جغرافية مختلفة.

أي نوع بروكسي يعمل بشكل أفضل مع cURL؟

البروكسي السكني يعمل بشكل أفضل للمواقع الصعبة التي تستخدم أنظمة مكافحة بوت متقدمة، لأن عناوين IP تبدو كمستخدمين حقيقيين. بروكسي مراكز البيانات أسرع وأرخص ومناسب للمهام البسيطة أو اختبار APIs بدون حماية صارمة. لـ SOCKS5، استخدم socks5h:// دائمًا لتجنب تسريب DNS.

كيف تتجنب الحظر عند استخدام البروكسي مع cURL؟

استخدم دوران IP عبر جلسات ثابتة فريدة لكل دفعة طلبات، أضف رؤوس User-Agent وAccept-Language واقعية، فعّل --compressed، استخدم --retry و--retry-all-errors لإعادة المحاولة، ابدأ بـ 5–10 اتصالات متزامنة فقط، واحترم حدود المعدل. أيضًا، استخدم --connect-timeout و--max-time لمنع التعليق.

¿Listo para empezar?

Proxies residenciales, ISP y móviles en más de 148 países. Creá una cuenta gratis.

Crear cuenta gratis
← Volver al Blog