بازدید: 234 بازدید


🛡️

آموزش کامل دور زدن تحریم‌های API

اتصال نامرئی تلگرام و دیسکورد در هاست ایران با Cloudflare Workers

⚡ سریع و پایدار
🔒 رایگان و امن
🎯 بدون تغییر افزونه

📖

مقدمه: چرا این آموزش را نیاز دارید؟

اگر شما هم از سایت‌های وردپرسی در هاست‌های ایرانی استفاده می‌کنید، قطعاً با مشکل عدم اتصال به API تلگرام و دیسکورد مواجه شده‌اید. این محدودیت به دلیل فیلترینگ سطح شبکه است و حتی با تغییر DNS هم حل نمی‌شود.

در این آموزش جامع، به شما نشان می‌دهیم چگونه با استفاده از Cloudflare Workers (یک سرویس رایگان و فوق‌العاده قدرتمند)، یک گذرگاه اختصاصی بسازید که تمام محدودیت‌ها را به صورت نامرئی دور می‌زند و بدون نیاز به تغییر تنظیمات افزونه‌ها، ارتباط سایت شما با تلگرام و دیسکورد را برقرار می‌کند.

⚠️

بخش اول: چرا هاست ایران به تلگرام وصل نمی‌شود؟

تحلیل فنی مشکل و دلایل آن

سرورهای مستقر در ایران به دلیل فیلترینگ سطح DNS و IP، اجازه برقراری ارتباط مستقیم با دامنه‌های زیر را ندارند:

BLOCKED
api.telegram.org
BLOCKED
discord.com

وقتی افزونه‌های وردپرسی (مثل افزونه‌های ارسال نوتیفیکیشن، ربات‌های تلگرامی، یا سیستم‌های لاگ دیسکورد) سعی می‌کنند پیامی ارسال کنند، با خطای زیر مواجه می‌شوند:

cURL error 28: Connection timed out after 5000 milliseconds

این خطا یعنی سرور شما سعی کرده به API متصل شود، اما به دلیل مسدود بودن مسیر، تایم‌اوت خورده است. راه‌حل؟ استفاده از یک واسطه (Proxy) که در خارج از ایران قرار دارد!

☁️

Cloudflare Workers چیست؟

Cloudflare Workers یک سرویس Edge Computing است که به شما اجازه می‌دهد کدهای جاوا اسکریپت را در سرورهای کلودفلر (که در سراسر جهان پخش شده‌اند) اجرا کنید. این سرویس:

💰

کاملاً رایگان

روزانه 100,000 درخواست رایگان

فوق‌العاده سریع

اجرا در 200+ دیتاسنتر جهانی

🔒

امن و پایدار

زیرساخت enterprise-grade

ما از Workers به عنوان یک Reverse Proxy استفاده می‌کنیم که درخواست‌های سایت شما را دریافت کرده، به تلگرام/دیسکورد ارسال می‌کند و پاسخ را برمی‌گرداند.

📊

مقایسه روش‌های مختلف

ویژگیCloudflare WorkersVPS خارجیپروکسی عمومی
هزینهرایگان ✅ماهانه 5-20$رایگان/پولی
سرعتبسیار بالا ⚡متوسطپایین
پایداری99.99% 🛡️متوسطپایین
پیاده‌سازیآسان ✅دشوارمتوسط
پشتیبانی فایلکامل ✅کاملمحدود ❌

🔧

بخش دوم: ساخت ورکر در کلودفلر

⏱️ زمان مورد نیاز: حدود 5 دقیقه | 💡 پیش‌نیاز: حساب رایگان Cloudflare

  1. ورود به پنل کلودفلر:
    به سایت dash.cloudflare.com بروید و وارد حساب خود شوید.
  2. رفتن به بخش Workers:
    از منوی سمت چپ، روی Workers & Pages کلیک کنید.
  3. ساخت Worker جدید:
    روی دکمه آبی Create application و سپس Create Worker کلیک کنید.
  4. نام‌گذاری و Deploy:
    یک نام دلخواه (مثل my-api-proxy) وارد کرده و روی Deploy کلیک کنید.
  5. ویرایش کد:
    روی دکمه Edit code کلیک کرده و کد زیر را جایگزین کنید:

worker.js

export default {
  async fetch(request) {
    const url = new URL(request.url);
    const method = request.method;
    let targetUrl = '';

    // مسیریابی درخواست‌های تلگرام
    if (url.pathname.startsWith('/telegram/')) {
      targetUrl = 'https://api.telegram.org' + url.pathname.replace('/telegram', '') + url.search;
    } 
    // مسیریابی درخواست‌های دیسکورد
    else if (url.pathname.startsWith('/discord/')) {
      targetUrl = 'https://discord.com/api' + url.pathname.replace('/discord', '') + url.search;
    } 
    // صفحه استاتیک برای روت اصلی
    else {
      const html = `<!DOCTYPE html><html lang="fa" dir="rtl"><head><meta charset="UTF-8"><title>Gateway Active</title><style>body{margin:0;background:#0f172a;color:#fff;font-family:sans-serif;display:flex;justify-content:center;align-items:center;height:100vh;}.card{background:#1e293b;padding:2rem;border-radius:1rem;text-align:center;border:1px solid #334155;}</style></head><body><div class="card"><h1>API Proxy Gateway</h1><p>سیستم در حال اجراست.</p></div></body></html>`;
      return new Response(html, { headers: { 'content-type': 'text/html;charset=UTF-8' } });
    }

    // ارسال درخواست به API مقصد
    const modifiedRequest = new Request(targetUrl, {
      method: method,
      headers: request.headers,
      body: (method !== 'GET' && method !== 'HEAD') ? request.body : null,
      redirect: 'follow'
    });

    try {
      const response = await fetch(modifiedRequest);
      return new Response(response.body, { 
        status: response.status, 
        headers: response.headers 
      });
    } catch (error) {
      return new Response(JSON.stringify({ 
        error: "Routing Error", 
        details: error.message 
      }), { status: 500 });
    }
  }
};

6. روی Save and Deploy کلیک کنید.

7. آدرس ورکر خود را کپی کنید (چیزی شبیه https://your-worker-name.your-subdomain.workers.dev)

🎯

بخش سوم: اتصال وردپرس به ورکر

حالا می‌خواهیم یک “نگهبان هوشمند” در وردپرس قرار دهیم که تمام درخواست‌های خروجی به تلگرام و دیسکورد را به صورت خودکار به ورکر شما هدایت کند. این یعنی بدون نیاز به تغییر تنظیمات هیچ افزونه‌ای!

  1. نصب افزونه Code Snippets:
    از منوی افزونه‌ها → افزودن، عبارت Code Snippets را جستجو و نصب/فعال کنید.
  2. ساخت اسنیپت جدید:
    به منوی Snippets → Add New بروید و یک اسنیپت جدید بسازید.
  3. وارد کردن کد:
    کد زیر را در ویرایشگر اسنیپت قرار دهید:

proxy-snippet.php

add_filter('http_request_args', 'auto_proxy_wp_http', 10, 2);
function auto_proxy_wp_http($args, $url) {
    // ⚠️ آدرس ورکر خود را اینجا وارد کنید
    $worker_url = 'https://YOUR-WORKER-URL.workers.dev/';
    
    // هدایت درخواست‌های تلگرام
    if (strpos($url, 'api.telegram.org') !== false) {
        $path = str_replace('https://api.telegram.org/', '', $url);
        $args['url'] = $worker_url . 'telegram/' . $path;
    } 
    // هدایت درخواست‌های دیسکورد
    elseif (strpos($url, 'discord.com/api') !== false) {
        $path = str_replace('https://discord.com/api/', '', $url);
        $args['url'] = $worker_url . 'discord/' . $path;
    }
    return $args;
}

add_action('http_api_curl', 'auto_proxy_curl_direct', 10, 3);
function auto_proxy_curl_direct($handle, $args, $url) {
    $worker_url = 'https://YOUR-WORKER-URL.workers.dev/';
    
    if (strpos($url, 'api.telegram.org') !== false) {
        $path = str_replace('https://api.telegram.org/', '', $url);
        curl_setopt($handle, CURLOPT_URL, $worker_url . 'telegram/' . $path);
    } 
    elseif (strpos($url, 'discord.com/api') !== false) {
        $path = str_replace('https://discord.com/api/', '', $url);
        curl_setopt($handle, CURLOPT_URL, $worker_url . 'discord/' . $path);
    }
}

⚠️ نکته بسیار مهم: در خط سوم و خط ۲۲ کد، عبارت YOUR-WORKER-URL را با آدرس ورکر واقعی خودتان جایگزین کنید.

  1. فعال‌سازی:
    روی دکمه Save and Activate کلیک کنید.
  2. تست:
    حالا یک پیام تست از طریق افزونه تلگرام یا دیسکورد خود ارسال کنید. باید بدون خطا ارسال شود! ✅

🔍

بخش چهارم: عیب‌یابی مشکلات رایج

❌ خطای 429 Too Many Requests

علت: از محدودیت رایگان کلودفلر (100,000 درخواست در روز) عبور کرده‌اید.

راه‌حل: به پلن پولی ($5 در ماه) ارتقا دهید یا درخواست‌های غیرضروری را کاهش دهید.

❌ خطای 403 Forbidden

علت: هدرهای درخواست به درستی منتقل نمی‌شوند.

راه‌حل: بررسی کنید که کد Worker به درستی Deploy شده باشد.

❌ ارسال فایل کار نمی‌کند

علت: محدودیت حجم فایل در پلن رایگان (100KB).

راه‌حل: فایل‌ها را فشرده کنید یا به پلن پولی ارتقا دهید.

✨ چرا این روش بهترین است؟

مزایای کلیدی که این روش را متمایز می‌کند

👻

نامرئی بودن

هیچ تغییری در تنظیمات افزونه‌ها نیاز نیست. همه چیز خودکار است.

سرعت فوق‌العاده

کلودفلر در 200+ دیتاسنتر جهانی پخش شده و سریع‌ترین مسیر را انتخاب می‌کند.

🛡️

پایداری 99.99%

زیرساخت enterprise-grade کلودفلر، پایداری بی‌نظیری را تضمین می‌کند.

📦

پشتیبانی کامل فایل

انتقال کامل فایل‌ها، عکس‌ها، ویدیوها و وب‌هوک‌های سنگین بدون محدودیت.

🔐

نکات امنیتی مهم

  • محدود کردن دسترسی:
    می‌توانید در کد Worker، فقط IP سرور خودتان را مجاز کنید تا دیگران نتوانند از پروکسی شما استفاده کنند.
  • استفاده از HTTPS:
    کلودفلر به صورت خودکار HTTPS را فعال می‌کند، اما مطمئن شوید سایت شما هم از HTTPS استفاده می‌کند.
  • مانیتورینگ درخواست‌ها:
    از بخش Analytics کلودفلر، تعداد درخواست‌ها و الگوهای مصرف را بررسی کنید.
  • عدم ذخیره اطلاعات حساس:
    کد Worker هیچ اطلاعاتی را ذخیره نمی‌کند و فقط به عنوان واسطه عمل می‌کند.

سوالات متداول

آیا این روش قانونی است؟

بله، استفاده از Cloudflare Workers کاملاً قانونی است. شما فقط از یک سرویس واسط برای برقراری ارتباط استفاده می‌کنید.

آیا نیاز به دانش برنامه‌نویسی دارم؟

خیر، فقط کافیست کدهای ارائه شده را کپی/پیست کنید و آدرس ورکر خود را جایگزین کنید.

آیا این روش روی همه هاست‌ها کار می‌کند؟

بله، این روش روی تمام هاست‌های ایرانی (اشتراکی، سرور مجازی، اختصاصی) کار می‌کند.

اگر ورکر از کار بیفتد چه می‌شود؟

کلودفلر دارای SLA 99.99% است و احتمال از کار افتادن آن بسیار کم است. اما می‌توانید یک ورکر پشتیبان هم بسازید.

🚀

آماده‌اید؟ همین الان شروع کنید!

با این روش، دیگر نگران خطاهای اتصال به تلگرام و دیسکورد نباشید. سایت شما به صورت نامرئی و خودکار با این سرویس‌ها ارتباط برقرار می‌کند.