Skip to content

دسترسی به Gemini / Google AI Studio با یک Worker اختصاصی

ماجرا از کجا شروع شد

وورکر پیش‌فرض کلودفلر (حالت Default در تنظیمات Placement) همیشه نزدیک‌ترین دیتاسنتر کلودفلر به خودِ کاربر نهایی رو انتخاب می‌کنه تا کمترین تأخیر رو داشته باشه. برای کاربری که از ایران وصل می‌شه، این یعنی اجرا نزدیک آذربایجان، ترکیه، آلمان، سوئد یا فنلاند — نه آمریکا.

مشکل اینجاست: بعضی سرویس‌ها (مثل Google AI Studio / Gemini) فقط برای درخواست‌هایی که از منطقه‌ی جغرافیایی خاصی (عمدتاً آمریکا) میان جواب می‌دن. وقتی وورکر همیشه نزدیک اروپا اجرا می‌شه، این سرویس‌ها بالا نمیان.

راه‌حل: یک وورکر جداگانه بساز که Placement‌ش رو دستی روی یک ریجن Google Cloud Platform (مثلاً آمریکا) قفل کنی، تا خودِ اجرای کد کلادفلر از یه دیتاسنتر نزدیک‌تر به اون منطقه انجام بشه.

Placement روی Cloudflare Workers دقیقاً چیه؟

طبق مستندات رسمی کلادفلر، سه حالت وجود داره:

حالتبرای چی مناسبه
Default (خاموش)Worker نزدیک‌ترین دیتاسنتر به کاربر نهایی اجرا می‌شه؛ کمترین تأخیر برای خودِ اتصال کاربر
Smartکلادفلر خودش بر اساس ترافیک تشخیص می‌ده Worker به کدوم بک‌اند ثابت بیشتر وصل می‌شه، و نزدیک همون بک‌اند اجراش می‌کنه
Regionخودت صریحاً یک ریجن مشخص از AWS، GCP یا Azure رو می‌گی (مثلاً gcp:us-east4)؛ کلادفلر Worker رو در نزدیک‌ترین دیتاسنترش به همون ریجن اجرا می‌کنه

NOTE

Smart و Region برای وقتی طراحی شدن که Worker به یک بک‌اند/دیتابیس/API ثابت (single-homed) وصل می‌شه و می‌خوای رفت‌وبرگشت بین Worker و اون بک‌اند رو کوتاه کنی.

چرا وورکر اصلی (VLESS/تونل با مقصد متغیر) نباید همینو فعال کنه

کد و کانفیگ اصلی (VLESS روی Serverless) هیچ بک‌اند ثابتی ندارد — این هفته تلگرام (سرورهای هلند/فنلاند)، اون هفته اینستاگرام (آلمان/اتریش/آمریکا)، یا سایت یه سفارتخانه (لهستان/استرالیا). مقصد هر لحظه عوض می‌شه، هیچ دیتابیس یا API ثابتی هم توی کد نیست.

برای همچین کاربردی:

  • Smart و Region هیچ فایده‌ای ندارن — چون بک‌اند ثابتی برای نزدیک‌شدن بهش وجود نداره
  • بدتر از اون، ممکنه Worker رو به یه دیتاسنتر دورتر از خودِ کاربر (end user) ببرن و لتنسی رو بدتر کنن
  • تنها فاکتوری که واقعاً روی این کاربرد اثر می‌ذاره، فاصله‌ی خودِ کاربر تا Worker است (سرعت هندشیک و رفت‌وبرگشت اولیه)، نه فاصله‌ی Worker تا یه «بک‌اند»

پس Worker اصلی باید روی Default بمونه.

کد وورکر پیشنهادی

برای این کاربرد، کد و مخزن زیر به‌عنوان وورکر پیشنهادی توصیه می‌شود:

  • لینک ریپازیتوری:

github.com/NiREvil/zizifn

  • لینک مستندات پروژه:

github.io/Diana-Cl/topics/zizifn

راه‌حل: یک وورکر دوم و جدا، فقط برای مقاصد آمریکایی/GCP

به‌جای تغییر تنظیمات Worker اصلی، یک Worker کاملاً جدا بساز که فقط Placementش Region روی GCP باشه، و فقط برای همون مقاصدی ازش استفاده کن که می‌دونی سرورشون آمریکاست یا فقط به آمریکا جواب می‌دن (مثل Google AI Studio). اسمی مثل only-GS Only Google Studio براش بذار تا با Worker اصلی قاطی نشه — چون جاهای دیگه (غیر از این مقاصد خاص) این Worker دوم به درد نمی‌خوره.

مراحل گام‌به‌گام (بر پایه‌ی داشبورد کلادفلر)

۱. وارد داشبورد کلادفلر شو → Workers & Pages → Worker موردنظر (یا یک Worker جدید بساز) → تب تنظیمات (Settings) → بخش Runtime

۲. روی فیلد Placement بزن و از حالت پیش‌فرض (Default) به Region تغییرش بده.

۳. فیلد Provider ظاهر می‌شه — حتماً روی Google Cloud Platform (GCP) تنظیمش کن (این بخش اجباریه، نه اختیاری).

۴. فیلد Location/Region بعدش میاد — این یکی اختیاریه؛ می‌تونی یک یا چند منطقه انتخاب کنی (مثلاً سنترال، آمریکای شرقی) یا خالی بذاری تا خودِ کلادفلر بهترین گزینه رو انتخاب کنه.

صفحه‌ی تنظیمات Runtime


۵. روی Save and Deploy بزن (همون دکمه‌ی Deploy پایین صفحه که بعد از تغییر تنظیمات، به‌جای متن معمولی، پیام «Unsaved changes» رو نشون می‌ده)

۶. یک‌بار ساب (Subscription) خودت رو Update کن.

۷. یک کانفیگ جدید بساز که دامنه‌اش دقیقاً همین Worker (نه Worker پیش‌فرض) باشه، و باهاش وصل شو.

۸. حالا Google AI Studio / Gemini رو امتحان کن — به‌طور معمول باید بالا بیاد.

Suggestion

برای اینکه درگیر باگ‌های کلاینت v2rayNG نشید و همچنین از مزایای پارامترهای پترنی‌ها Final mask و Cypher suites بهره‌مند بشید، پیشنهاد می‌کنم از لینک ساب v2ray-Enhanced پنل zizifn داخل کلاینت PattNG استفاده کنید. مشکل قطع‌ و‌ وصلی‌های مکرر و سرعت پایین آپلود به کلی برطرف خواهند شد.

توضیحات بیشتر

چرا این کار واقعاً جواب می‌ده؟ (توضیحات تکمیلی)

طبق مستندات رسمی کلادفلر، در حالت Region، خودِ اجرای کد Worker در دیتاسنتر کلادفلری انجام می‌شه که کمترین تأخیر رو تا ریجن ابری انتخابی (اینجا GCP) داره — یعنی این دیتاسنتر واقعاً از نظر جغرافیایی به همون منطقه (مثلاً آمریکا) نزدیک‌تره. وقتی این Worker یک درخواست خروجی به Gemini/Google AI Studio می‌زنه، آی‌پی خروجی از همون دیتاسنتر آمریکایی کلادفلره، نه دیتاسنتر اروپایی/نزدیک‌به-ایران که در حالت Default انتخاب می‌شد. از اونجایی که این سرویس‌ها معمولاً بر اساس موقعیت جغرافیایی IP ورودی تصمیم می‌گیرن جواب بدن یا نه، این تغییر دقیقاً همون چیزیه که لازمه.

Important Note

خودِ کلادفلر این قابلیت رو رسماً برای «کاهش تأخیر به یک بک‌اند مشخص» تبلیغ می‌کنه، نه برای «تغییر موقعیت جغرافیایی درخواست»؛ یعنی این یه استفاده‌ی جانبی (side-effect) از یه فیچر پرفورمنسیه، نه یه قابلیت رسمی و تضمین‌شده برای دور زدن محدودیت جغرافیایی. ممکنه در آینده کلادفلر رفتار داخلی این ویژگی رو تغییر بده.

جمع‌بندی و توصیه‌ی نهایی

  • Worker اصلی (تونل/وبگردی با مقصد متغیر): Placement روی Default بمونه
  • Worker دوم و جدا (فقط برای مقاصد آمریکایی/GCP مثل Gemini): Placement روی Region → Google Cloud Platform، لوکیشن اختیاری، اسمش چیزی مثل only-GS تا مشخص باشه فقط برای همین منظوره
  • برای کد این Worker دوم، از ریپوی پیشنهادی [1] استفاده کن.
  • این Worker دوم رو به‌عنوان یک کانفیگ جدا و اضافه نگه دار، نه جایگزین کانفیگ روزمره‌ات.

راهنما و پشتیبانی

Further Assistance

در صورت مواجهه با هرگونه سوال یا مشکل در حین راه‌اندازی یا استفاده از این پروژه، می‌توانید از راه‌های زیر با ما در ارتباط باشید:


  1. NiREvil/zizifn ↩︎