كيفية تجاوز Cloudflare في 2026 (دون حرق عناوين IP الخاصة بمراكز البيانات)

نُشر في 27 مايو 2026 · ≈12 دقيقة قراءة

معظم دروس "كيفية تجاوز Cloudflare" على الإنترنت توقّفت عن العمل في أواخر 2024. والسبب ليس أن Cloudflare أضافت دفاعات جديدة. بل أن الدفاعات القديمة، بصمات JA3 وفحوصات الترويسات الأساسية، استُبدلت بجيل جديد يكسر كل اختصار. يشرح هذا الدليل ما الذي يفحصه Cloudflare فعليًا في 2026، ولماذا تفشل cloudscraper و undetected-chromedriver ومعظم إضافات "التخفي"، والوصفة المؤلفة من أربع طبقات التي لا تزال تعمل في الإنتاج.

الخلاصة الصادقة بدايةً: لا توجد حيلة واحدة. تجاوز Cloudflare بشكل موثوق يتطلب عنوان IP الصحيح، وبصمة TLS الصحيحة، وترتيب إطارات HTTP/2 الصحيح، و(لمستوى Bot Management) متصفحًا حقيقيًا. أخطئ في أي واحد منها وستفشل في مرشح الحافة قبل أن يصل طلبك إلى خادم الأصل أصلًا.

ما الذي يفحصه Cloudflare فعليًا في 2026

يعمل اكتشاف الروبوتات في Cloudflare كخط أنابيب من المرشحات عند الحافة. يمر كل طلب عبرها بالترتيب. المرشح الأبكر الذي يرفض يفوز، مما يعني أن طلبًا يمكن أن يفشل بناءً على سمعة IP وحدها قبل فحص أي بصمة أو ترويسة.

1. سمعة IP (ASN + سجل الإساءة)

هذا هو الفحص الأول والأرخص. تحتفظ Cloudflare بقاعدة بيانات مفهرسة بـ ASN (رقم النظام المستقل). أرقام ASN التابعة لمزودي السحابة المعروفين (AWS AS16509، GCP AS15169، Azure AS8075، OVH AS16276، DigitalOcean AS14061، Hetzner AS24940، Vultr AS20473) تحصل على أعلى تدقيق. حتى مع بصمة بمستوى متصفح مثالي، يُعامَل طلب صادر من أرقام ASN هذه على أنه مذنب حتى تثبت براءته.

أرقام ASN السكنية (Comcast AS7922، Verizon AS701، China Telecom AS4134، BT AS2856) تُفترَض شرعية. طلب من عنوان IP سكني ببصمة Python خرقاء يمكن أن يمر مع ذلك، بينما طلب من عنوان IP لمركز بيانات ببصمة Chrome مثالية سيُتحدّى أو يُحظَر.

2. بصمة TLS من نوع JA4

JA4 هو خليفة 2023 لـ JA3، أصدرته FoxIO. يُجزِّئ حقولًا محددة من TLS ClientHello: إصدار TLS، ومجموعات التشفير (بالترتيب)، والامتدادات (بالترتيب)، وبروتوكولات ALPN، وخوارزميات التوقيع، والمجموعات المدعومة. الناتج بصمة حتمية مثل t13d1516h2_8daaf6152771_b1ff8ab2d16f.

ينتج Chrome 124 الحقيقي JA4 واحدًا محددًا. وينتج Firefox 124 الحقيقي واحدًا مختلفًا. مكتبة requests في Python (التي تستخدم urllib3 و OpenSSL) تنتج JA4 لا يُصدره أي متصفح حقيقي على الإطلاق، لأن ترتيب التشفير وقائمة الامتدادات لا يطابقان لا Chrome ولا Firefox. تَسِم Cloudflare هذا النمط قبل تحليل أي ترويسة HTTP.

المغزى: كل مكتبة تستخدم OpenSSL الخاص بالنظام أو TLS القياسي لـ Python قابلة للاكتشاف. يشمل ذلك requests و aiohttp و httpx (التكوين الافتراضي) وأي غلاف "تجاوز" مبني فوقها.

Free tool · no signup

شاهد بصمة TLS الدقيقة التي يقرأها Cloudflare منك

اضربها بأداة الكشط الخاصة بك (curl، requests، متصفحك بلا واجهة) وتُرجِع لك بصمة JA3/JA4، وأي مكتبة تبدو عليها، وما إذا كانت ستُوسَم — نفس الفحص الموصوف أعلاه.

افحص بصمتي →

البصمة نظيفة لكنك لا تزال تُحظَر؟ إنها سمعة عنوان IP الخاص بك. احصل على 500 ميجابايت رصيد مجاني وشغِّل بروكسي سكنيًا في 30 ثانية →

3. ترتيب إطارات HTTP/2 وتسلسل الترويسات الزائفة

تحمل اتصالات HTTP/2 إطارات إعدادات، وتحديثات نافذة، وإطارات أولوية، وإطارات ترويسات. ترسل المتصفحات هذه بترتيب محدد بقيم محددة. يرسل Chrome 124 إطار SETTINGS أوليًا بهذه القيم الدقيقة، ثم WINDOW_UPDATE، ثم HEADERS. مكتبة httpx في Python مع تفعيل HTTP/2 ترسل حمولة إعدادات مختلفة وتتجاوز إطارات الأولوية التي يضمّنها Chrome.

ترتيب الترويسات الزائفة في HTTP/2 يُسرِّب الهوية أيضًا. يرسل Chrome :method و :authority و :scheme و :path بهذا الترتيب. ويرسل Firefox :method و :path و :authority و :scheme. تُسلسِل معظم مكتبات Python و Go هذه أبجديًا. تطابق Cloudflare الترتيب مع النمط المتوقع لوكيل المستخدم المُعلَن وتَسِم حالات عدم التطابق.

4. ترتيب الترويسات وحالة الأحرف

ترويسات HTTP/1.1 تحافظ على ترتيب الإدراج. يرسل Chrome الحقيقي الترويسات بترتيب ثابت: Host و Connection و Cache-Control و sec-ch-ua و sec-ch-ua-mobile و sec-ch-ua-platform و Upgrade-Insecure-Requests و User-Agent و Accept و Sec-Fetch-Site و Sec-Fetch-Mode و Sec-Fetch-User و Sec-Fetch-Dest و Accept-Encoding و Accept-Language. مكتبة requests في Python تعيد ترتيبها وأحيانًا تكتب الأحرف الكبيرة بشكل مختلف. حتى ضبط الترويسات يدويًا بالترتيب الصحيح لا يساعد لأن المكتبة الأساسية تعيد فرزها.

5. تحدّي JavaScript (التحدي المُدار)

إذا مرّت المرشحات السابقة لكن النتيجة لا تزال مشبوهة، تقدِّم Cloudflare تحدي JavaScript. يحسب السكربت رمزًا من قيم بيئة المتصفح (تجزئة canvas، ومُصيِّر WebGL، وسياق الصوت، وخصائص navigator، وقياسات التوقيت) ويرسله عبر XHR. لا يستطيع أي عميل HTTP حل هذا. تحتاج إلى متصفح حقيقي، ويجب أن يبدو المتصفح حقيقيًا (لا navigator.webdriver = true، ولا خصائص مفقودة).

6. الإشارات السلوكية (Bot Management Enterprise فقط)

في مستوى Bot Management، تجمع Cloudflare حركة الماوس، وسرعة التمرير، وتوقيت النقر، وديناميكيات ضربات المفاتيح عبر سكربت يعمل باستمرار. متصفح بلا واجهة يُحمِّل الصفحة ويكشطها فورًا دون تحريك الماوس أبدًا يُكتشَف خلال ثوانٍ. المستخدمون الحقيقيون يتحركون بشكل غير منتظم، ويتوقفون، ويعيدون القراءة. أما الروبوتات فتُمرِّر بشكل خطي وتنقر بدقة بكسل.

لماذا ماتت معظم أدوات التجاوز من حقبة 2024

أدوات الاختصار التي شغّلت كشط 2021-2024 تتشارك جميعها نمط فشل واحد: تُرقِّع السطح المرئي لكن ليس مكدس TLS الأساسي.

الأداةما تُرقِّعهلماذا تفشل في 2026
cloudscraperحلّال تحدي JS (قديم)انتقلت Cloudflare إلى Turnstile في 2023؛ التحديات القديمة مُهملة
undetected-chromedriverيُرقِّع أعلام تسريب SeleniumJA4 لا يزال يتسرب من TLS الأساسي لـ chromedriver؛ navigator.webdriver مجرد واحدة من أكثر من 40 إشارة
selenium-stealthيحقن خصائص JS مزيفةتقرأ Cloudflare من طبقة C++، وليس JS؛ التزييف قابل للاكتشاف كغير متسق
FlareSolverrيغلِّف Chromium لحل تحدٍ لمرة واحدةcf_clearance مرتبط بعنوان IP الحلّال؛ بروكسي جديد يُبطِل الرمز فورًا
puppeteer-extra-plugin-stealth القياسييُرقِّع نحو 17 نقطة اكتشافأضافت Cloudflare نحو 12 فحصًا جديدًا في 2024-2025 لا تغطيها الإضافة

النمط واضح: الأدوات التي تغلِّف متصفحًا حقيقيًا وتُرقِّع التسريبات المعروفة تخسر سباق التسلح خلال أشهر. الأدوات التي تحاكي مكدس TLS لمتصفح (curl_cffi، tls-client) بقيت حية لأنها تجلس أقرب إلى السلك.

الوصفة المؤلفة من أربع طبقات التي لا تزال تعمل

التجاوز الذي يعمل في 2026 يحتاج إلى الطبقات الأربع جميعها. تخطّي أي واحدة يُسقِط معدل النجاح إلى أرقام آحاد.

الطبقة 1: عنوان IP سكني أو خلوي

هذا غير قابل للتفاوض لأي موقع يُشغِّل Cloudflare Pro أو أعلى. يرفض مرشح سمعة IP أرقام ASN لمراكز البيانات قبل اكتمال مصافحة TLS. استخدم بروكسي سكنيًا بجلسة لاصقة لمدة 10 دقائق على الأقل حتى يبقى ملف تعريف الارتباط cf_clearance.

واقع التكلفة: السكني بسعر 2 دولار/جيجابايت يبدو باهظًا بجانب مركز البيانات بسعر 0.8 دولار/جيجابايت. لكن على هدف محمي بـ Cloudflare، معدل نجاح مركز البيانات أقل من 1% بينما السكني 88-94%. التكلفة الفعلية لكل صفحة ناجحة: السكني 0.0036 دولار، ومركز البيانات 0.10 دولار. السكني أرخص بـ 27-28 مرة للأهداف المحمية ويخسر فقط على غير المحمية.

الطبقة 2: بصمة TLS لمتصفح حقيقي

استخدم curl_cffi (Python) أو tls-client (Go/Python). كلاهما يرتبط بـ BoringSSL معدَّل يُشحَن مع ترتيب التشفير الدقيق لـ Chrome وقائمة امتداداته وقيم ALPN.

from curl_cffi import requests

response = requests.get(
    "https://target.com/api/products",
    impersonate="chrome124",
    proxies={"https": "http://user-session-abc123:[email protected]:10001"},
    timeout=30,
)
print(response.status_code, len(response.text))

المعامل impersonate="chrome124" يبدِّل مكدس TLS بحيث يطابق ClientHello متصفح Chrome 124 بايتًا ببايت. ستكون تجزئة JA4 مطابقة لتثبيت Chrome 124 حقيقي. اقرنها ببروكسي سكني وتمر عبر المرشحَين الأولَين.

الطبقة 3: ترتيب الترويسات المطابق للمتصفح المُنتحَل

يضبط curl_cffi الترويسات بترتيب Chrome تلقائيًا عند استخدام impersonate. إذا أضفت ترويسات مخصصة، فألحِقها في النهاية بدلًا من إدراجها في المنتصف. تجنب ضبط ترويسات لا يرسلها Chrome الحقيقي (مثل X-Requested-With في تنقل عادي).

بالنسبة لـ Accept-Language، طابِقها مع الموقع الجغرافي للبروكسي. عنوان IP سكني أمريكي يرسل Accept-Language: zh-CN,zh;q=0.9 هو إشارة صغيرة لكنها حقيقية. استخدم en-US,en;q=0.9 لعناوين IP الأمريكية، وde-DE,de;q=0.9 لعناوين IP الألمانية، وهكذا. هذه واحدة من الإشارات القليلة التي يمكنك إصلاحها مجانًا.

الطبقة 4: متصفح حقيقي لتحديات JS (عند الحاجة)

إذا حفّز الهدف تحديًا مُدارًا (ترى صفحة تحدي CF في نص الاستجابة)، فلا يستطيع curl_cffi وحده حله. انتقل إلى Playwright مع Chromium مُرقَّع.

from playwright.sync_api import sync_playwright
from rebrowser_playwright.sync_api import sync_playwright as rebrowser_sync

with rebrowser_sync() as p:
    browser = p.chromium.launch(
        headless=True,
        proxy={
            "server": "http://gate.jibaoproxy.com:10001",
            "username": "user-session-abc123",
            "password": "pass",
        },
    )
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
        viewport={"width": 1920, "height": 1080},
        locale="en-US",
        timezone_id="America/New_York",
    )
    page = context.new_page()
    page.goto("https://target.com/", wait_until="networkidle")
    # cf_clearance is now in context.cookies()
    cookies = context.cookies()
    cf_clearance = next((c for c in cookies if c["name"] == "cf_clearance"), None)
    browser.close()

استخدم rebrowser-playwright بدلًا من playwright القياسي. فهو يُرقِّع تسريبات وقت تشغيل CDP (Runtime.enable، وكشف أوامر CDP للصفحة) التي تقرأها Cloudflare لاكتشاف الأتمتة بلا واجهة. بعد اجتياز التحدي، استخرج cf_clearance من ملفات تعريف الارتباط وسلِّمه مرة أخرى إلى curl_cffi لحلقة الكشط الفعلية. المتصفح مطلوب مرة واحدة لكل جلسة، وليس لكل طلب.

حسابات التكلفة: لماذا يفوز السكني على الأهداف المحمية

الغريزة لاستخدام أرخص بروكسي تكون دائمًا تقريبًا خاطئة على المواقع المحمية بـ Cloudflare. لنمرّ عبر الحسابات بأرقام حقيقية.

الافتراضات: متوسط صفحة HTML بحجم 500 كيلوبايت، وكشط 100,000 صفحة إجمالًا، والهدف يستخدم Cloudflare Pro مع تفعيل Bot Fight Mode.

الإعدادتكلفة النطاق التردديمعدل النجاحطلبات لكل نجاحإجمالي التكلفةالتكلفة لكل صفحة
مركز بيانات 0.8 دولار/جيجابايت + requests 0.0005 دولار / طلب 0.5% 200 10,000 دولار 0.10 دولار
مركز بيانات 0.8 دولار/جيجابايت + curl_cffi 0.0005 دولار / طلب 3% 33 1,650 دولار 0.0165 دولار
سكني 2 دولار/جيجابايت + requests 0.0033 دولار / طلب 40% 2.5 825 دولار 0.0083 دولار
سكني 2 دولار/جيجابايت + curl_cffi 0.0033 دولار / طلب 92% 1.09 360 دولار 0.0036 دولار
سكني 2 دولار/جيجابايت + Playwright (rebrowser) 0.017 دولار / طلب (الأصول + JS) 96% 1.04 1,700 دولار 0.017 دولار

نتيجتان تستحقان الملاحظة:

  1. سكني + curl_cffi هو الفائز من حيث التكلفة لكل نجاح بعامل 3-18 مرة على كل تركيبة أخرى. الحدس بأن السكني "باهظ" صحيح بالدولار/جيجابايت لكنه خاطئ بالدولار/صفحة ناجحة.
  2. Playwright أغلى لكل طلب لأنه يُنزِّل حزمة الأصول الكاملة (CSS، JS، الصور). استخدمه فقط للطلب الواحد الذي يحل التحدي، ثم سلِّم cf_clearance إلى curl_cffi.

الوصفة العملية: أداة كشط بمستوى إنتاجي

هذا هو النمط الذي نوصي به للعملاء الذين يكشطون أهدافًا محمية بـ Cloudflare على نطاق واسع. يُقلِّل من استخدام Playwright (وهو بطيء وباهظ) ويُعظِّم استخدام curl_cffi (وهو سريع ورخيص).

from curl_cffi import requests as cf_requests
from rebrowser_playwright.sync_api import sync_playwright

PROXY_USER_FMT = "user-session-{sid}"
PROXY_HOST = "http://gate.jibaoproxy.com:10001"
PROXY_PASS = "your_password"

def get_cf_clearance(target_url, session_id):
    """One-shot Playwright call to solve the challenge and extract cf_clearance."""
    with sync_playwright() as p:
        browser = p.chromium.launch(
            headless=True,
            proxy={"server": PROXY_HOST,
                   "username": PROXY_USER_FMT.format(sid=session_id),
                   "password": PROXY_PASS},
        )
        ctx = browser.new_context(user_agent="Mozilla/5.0 ... Chrome/124.0.0.0 Safari/537.36")
        page = ctx.new_page()
        page.goto(target_url, wait_until="networkidle", timeout=45000)
        cookies = ctx.cookies()
        browser.close()
    return {c["name"]: c["value"] for c in cookies}

def scrape_with_clearance(urls, session_id, cookies):
    """Reuse the same session_id (sticky IP) for all requests."""
    proxy = f"http://{PROXY_USER_FMT.format(sid=session_id)}:{PROXY_PASS}@gate.jibaoproxy.com:10001"
    out = []
    for url in urls:
        r = cf_requests.get(
            url,
            impersonate="chrome124",
            proxies={"https": proxy},
            cookies=cookies,
            timeout=30,
        )
        if r.status_code == 200:
            out.append((url, r.text))
        elif r.status_code in (403, 503) and "challenge" in r.text.lower():
            # cf_clearance expired; re-solve
            cookies = get_cf_clearance(url, session_id)
            r = cf_requests.get(url, impersonate="chrome124",
                                proxies={"https": proxy}, cookies=cookies)
            out.append((url, r.text))
    return out, cookies

# Usage
session_id = "scrape-job-2026-05-27"
cookies = get_cf_clearance("https://target.com/", session_id)
results, cookies = scrape_with_clearance(target_urls, session_id, cookies)

النقاط الرئيسية في هذه الوصفة:

متى تستسلم

بعض عمليات نشر Cloudflare لا يمكن تجاوزها بأي تكلفة معقولة. إذا رأيت هذه الإشارات، فبدِّل الاستراتيجيات (استخدم واجهة API، أو اشترك مع مالك الموقع، أو اشترِ البيانات) بدلًا من حرق الميزانية على تجاوز لن يستقر أبدًا.

مرجع سريع

مستوى الهدفالوصفةمعدل النجاح المتوقع
CF Free / Pro (بلا Bot Fight)مركز بيانات + curl_cffi60-75%
CF Free / Pro + Bot Fight Modeسكني + curl_cffi85-93%
CF Businessسكني + curl_cffi + Playwright أحيانًا80-90%
CF Business + Turnstileسكني + rebrowser-playwright (كل طلب)70-85%
CF Enterprise + Bot Managementسكني خلوي + rebrowser + محاكاة سلوكية30-60%
CF Enterprise + Bot Management + WAF مخصصلا تكشط؛ اسعَ للحصول على API أو شراكة<10%

يقدم JIBAO Proxy بروكسيات سكنية ديناميكية بأكثر من 90 مليون عنوان IP عبر أكثر من 240 دولة، وجلسات لاصقة تصل إلى 60 دقيقة، واستهداف على مستوى الدولة بدءًا من 2 دولار/جيجابايت. لعناوين IP الخلوية، راجع البروكسيات الخلوية الديناميكية. كلاهما يعمل مباشرةً مع curl_cffi و tls-client و Playwright و Puppeteer و Selenium وأي عميل HTTP يدعم بروكسيات HTTP/SOCKS5.

قراءة ذات صلة: الجلسات اللاصقة مقابل المتدوِّرة يغطي تكوين الجلسة بعمق. بروكسيات لوكلاء الذكاء الاصطناعي يشرح حالة استخدام وكيل الذكاء الاصطناعي التي تتداخل بشدة مع سير عمل تجاوز Cloudflare.

اختبر الوصفة بعناوين IP سكنية حقيقية

احصل على 500 ميجابايت رصيد مجاني. شغِّل تركيبة curl_cffi + السكني اللاصق ضد هدفك قبل الالتزام.

ابدأ التجربة المجانية

لجميع منتجات الـ IP · مجموعة ضخمة من العُقد المتاحة في أي وقت

سجّل الآن واحصل على ما يصل إلى 100% استرداد على إعادة الشحن

يحصل المستخدمون الجدد على 500MB عند التسجيل، بالإضافة إلى مكافأة على أول عملية شحن. العرض لفترة محدودة.