إذا كنت مهندس خلفية أو متخصص 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 أو تصفّح المواقع المتاحة لاختيار الاستهداف الجغرافي المناسب.






