امشب میخوام داستان #worker رو براتون بگم. اینکه اصلا چی هست و چیکار میکنه، البته این اسمیه که #کلادفلر براش گذاشته.
این مفهوم با عنوان Serverless Coding یا کدنویسی بدون سرور، در خیلی سرویسدهندههای دیگه از جمله گوگل، آمازون و مایکروسافت هم عرضه میشه.
۱/۱۲
روند اجرای یک درخواست تا رسیدن به پاسخ در وب رو وقتی خیلی خلاصه کنیم به این شکله که ما یک درخواست رو میفرستیم به سرور، سرور درخواست رو بررسی میکنه، پاسخ رو آماده میکنه و اون رو به ما برمیگردونه.
تو خیلی از کارها پروسهی تهیه پاسخ اونقدر سادهاس که نیاز به سرور پیچیده نداره.
۲/۱۲
اینجاس که مفهوم Serverless مطرح میشه. یک ابزار برنامهپذیر که در حدود تعیین شده کد ما رو میپذیره، اجرا میکنه و پاسخ رو برمیگردونه.
خب؟ الان این چه ارتباطی با موضوع عبور از فیلترینگ داره؟
در یک کلام، همون استفادهای رو داره که cdn داشت با یک تفاوت مهم.
۳/۱۲
اجازه بدید یه مثال ملموس بزنم.
فرض کنید ما میخوایم از سوپرمارکت محل خرید کنیم، ولی یه طلبکار (فیلترچی) داریم که سر کوچه کمین کرده و اگه بفهمه ما میخوایم از سوپرمارکت خرید کنیم، خفتمون میکنه😰.
چیکار میکنیم؟ یه آدم خیر پیدا میکنیم، بهش میگیم بره برامون خرید کنه و بیاره.
۴/۱۲
طبیعتا طلبکار (فیلترچی) هیچوقت با اون آدمِ بیربط کار نداره، نمیشناسدش اصلا.
این آدمِ خیرِ بیربط، همین #worker هستش. یه ماشینِ بیگناه که ما برنامهریزیش کردیم تا هر چی بهش گفتیم رو ببره تحویل سرور ممنوعه بده (v2ray) و پاسخشو برامون بیاره.
ای بابا، بازم بد شد که...
۵/۱۲
تفاوتش با cdn زیاد ملموس نبود؟ اگه از هردوتاش استفاده کنیم چی میشه؟
جای cdn از worker استفاده کنیم چی؟
همه شو میگم. جوابش خیلی راحته.
ببینید worker ها خودشون از زیرساخت cdn استفاده میکنن برای همین محدود کردنشون سخته، همون هزینهها رو داره.
۶/۱۲
طبیعیه که نباید همزمان از دوتاش استفاده کنیم، کمکی نمیکنه.
ولی چرا برای سرور خودمون جای cdn از ورکر استفاده نکنیم؟ چون ورکر هم پیچیدهتره و هم محدودیت زیادی داره. فعلا روی کلادفلر روزی 100k درخواست بیشتر نمیشه به ورکر فرستاد. عدد بالایی نیست اصلا. هیچ مزیتی هم به cdn نداره.
۷/۱۲
خب چرا جای ورکر از cdn استفاده نمیکنیم؟ چون cdn رو ما میتونیم جایی بذاریم که سرور برای خودمون باشه و بتونیم سرور رو ببریم پشت cdn. وقتی داریم از سرورهای رایگان لینک میگیریم که نمیتونیم سرورشونو ببریم پشت cdn.
اینجاست که میایم از worker یک نامهرسون میسازیم.
۸/۱۲
چرا خود پرووایدرهای لینکهای رایگان، سرورهاشونو نمیبرن پشت cdn؟
چون اونا ترافیکشون خیلی بالاس. از یه جایی به بعد باید هزینهی زیادی پرداخت کنن و دیگه رایگان نیست.
پس دیگه جایگاه cdn و ورکر رو میتونیم تشخیص بدیم. وقتی سرور شخصیه، cdn استفاده میکنیم در غیر اینصورت ورکر.
۹/۱۲
جالب بود نه؟ حالا چطور ایجادش کنیم؟
تو رشتوی cdn (اگه نخوندید حتما بخونید، خوشحال میشم)، نوشته بودم چطور اکانت #کلادفلر ایجاد کنید.
کاری هم نداره، چهارتا کلیک.
وقتی اکانت رو ایجاد کردید و وارد شدید، تو منوی کناری بخشی تحت عنوان workers داریم.
۱۰/۱۲
روی منوی workers کلیک میکنیم و گزینهی Create a service رو میزنیم.
در صفحهی بعدی مطابق شکل گزینهی http handler رو میزنیم و سرویس رو ایجاد میکنیم.
در صفحهی بعدش هم روی quick edit کلیک میکنیم و وارد بخش کد نویسی میشیم.
۱۱/۱۲
این بخش دیگه تخصصیه، اگه جاوا اسکریپت بلد باشید که عالیه و خیلی کارها میتونید بکنید اینجا ولی اگه تو این زمینه سر رشته ندارید اصلا نگران نباشید.
نمونه کدی که باید اینجا بنویسید تو راهنماهای مربوطه هست و صرفا همونو کپی میکنید و میارید داخل این بخش. در نهایت هم Save & Deploy.
۱۲/۱۲
این ورکر یه آدرس داره که تو تمام صفحات نوشته شده. از چهار قسمت تشکیل شده. name.id.worker.dev
شامل نام سرویس، شناسهی اکانت شما و دامین که متعلق به کلادفلره.
این لینک میشه آدرس ورکر شما که باید کپی کنید و هر جایی خواستید ازش استفاده کنید.
۱۳/۱۴
در آخر بازم تشکر میکنم که حوصله کردید و خوندید و امیدوارم مفید بوده باشه.
این رو هم بگم، هدف من آموزش عمومیه، هیچ محدودیتی روی بازنشر مطالبم ندارید. دوست داشتید ذکر منبع کنید، نکردید هم فدای سرتون.
یک نفر بیشتر استفاده کنه هم من خوشحال میشم. 🌱
۱۴/۱۴
همیشه باید یه ردی از کم حواسیم تو توییتام بمونه، این اصلاح نکردن نهایی شماره ۱۲ و ۱۴ رو بذارید به خاطر خستگیم 🫠
دوستان زیادی اومدن ابهام ایجاد کردن که ورکرها فیلتر شدن.
ببینید همونطور که توی رشتو نوشته بودم، ورکرها از زیرساخت cdn کلادفلر استفاده میکنن. اینکه کلادفلر اختلال داره چیز جدیدی نیست. blog.cloudflare.com/cloudflare-ser…
• • •
Missing some Tweet in this thread? You can try to
force a refresh
خب دوستان بالاخره تمومش کردم. طبق قولی که داده بودم، امروز یه سایت جدید معرفی میکنم که بتونید ازش کانفیگ رایگان بگیرید.
اما قبلش بیاید با هم ورکر رو بسازیم. هر کی برای خودش.
اگه نمیدونید از کجا شروع کنید، این رشتو رو بخونید:
۱/۹
وقنی ورکر رو ساختید، باید برنامهریزیش کنیم که بتونه خدمتی که نیاز داریم رو به ما بده.
تکه کد زیر رو توی gist نوشتم.
فقط این کد رو کپی کنید داخل ورکر خودتون، ذخیره کنید و تمام. آدرس ورکرتون رو کپی کنید، لازمش داریم.
۲/۹ gist.github.com/vfarid/9bbd753…
حالا باید بریم به سایت freevmess.com که طبیعتا فیلتره. این رو با یک فیلترشکن برید.
صفحه رو اسکرول کنید تا به بخش دریافت کانفیگها برسید.
من خودم کانفیگی که گرفتم رو دورش خط زرد کشیدم، حداقل فعلا فقط کانفیگ vmess بگیرید. دلیلشو جلوتر میگم. دکمهی submit رو بزنید.
۳/۹
امروز میخوام یه داستان بگم دربارهی #CDN. اینکه کلا چی هست، ذات کارش چیه و ما تو این شرایط چطور ازش استفاده میکنیم.
معادل فارسیش میشه "شبکهی تحویل محتوا"، حالا یعنی چی؟
یک فروشگاه زنجیرهای رو در نظر بگیرید که برای اینکه فروشش رو تسهیل کنه، تو هر محله یه فروشگاه میزنه.👇
۱/۱۸
هدف چیه؟ تسهیل دسترسی مشتری به کالا از طریق شبکهی فروشگاهی.
حالا برگردیم به CDN که نقشش تو خدمات اینترنتی دقیقا همینه. تسهیل دسترسی کاربر به محتوا از طریق شبکهی توزیعشدهی سرورها.
قبل از ادامه، یه نگاه دوباره به تصویر توییت قبل بندازید.
۲/۱۸
یک CDN قوی میتونه سرعت دسترسی کاربر به محتوای وب رو به طور ملموسی افزایش بده چون جای اینکه درخواست شما در یک شبکهی پیچیده بچرخه تا به مقصد برسه، خیلی سریع به اولین سرور محلی وصل میشه و از اونجا مستقیم به سرور مقصد هدایت میشه.
اما کاربردش برای عبور از فیلترینگ چیه الان؟
۳/۱۸
اضافه شدن امکانات TLS1.3 به توزیعهای xray و برخی کلاینتها، دست فیلترکننده رو به شدت بسته. اینها که امروز میخوام بگم رو درست استفاده کنید تا برای فیلترچی تقریبا نامرئی بشین.
من روی v2rayNG توضیح میدم، شما مشابهشو رو اپ خودتون پیدا کنید:
uTLS, alpn & allowinsecure
۱/۱۰
میخوام داستان بگم که تا حد امکان ساده باشه برای همگی.
وقتی ما میخوایم به یه سرور وصل بشیم، تو قدم اول با ارسال نام دامنه به DNS، آدرس سرور استعلام میشه تا بعد درخواست به اون آدرس ارسال بشه.
تو همین قدم، قبلا تو مسیر، فیلترچی میدید کجا داریم میریم.
۲/۱۰
اما با معرفی سرویس DNS امن (DoT & DoH) این مساله حل شد. کلادفلر این سرویس رو داره و جای نگرانی نیست. اپ v2rayNG هم وقتی کانفیگ روی حالت tls باشه، این سرویس رو فعال میکنه. یعنی این مرحله رد شد و فیلترچی متوجه نشد ما میخوایم به سمت کدوم دامنه بریم.
۳/۱۰
اینو دقیق بخونید، قدم به قدم جلو برید، کلادفلر رو برای هر نفر یه اکانت ایجاد کنید، ایمیل رو که همه چندتا دارید، اکانت کلاد فلر هم که یه ایمیل میخواد و رایگانه،
برای خودتون که ساختید برای دوستان و اقوام هم بسازید. کمک کنید به اطرافیانتون.
زکاتشو بدید خلاصه.
۱/
روی ios بهتترینش برای subscribe کردن shadowrocket هستش اگه میتونید بخریدش، ۳ دلار قیمتشه تو اپ استور. جایگزینش FairVPN هست که به روش import میتونید لینک subscribe رو ایمپورت کنید و کانفیگها رو بگیرید. اینجا توضیح دادم:
۳/
وقتی از اپ v2rayNG روی اندروید استفاده میکنید، برای اینکه اپها و وبسایتهای ایرانی از vpn رد نشن و راحت باز بشن، مطابق تکه فیلم کوتاهی که پایین گذاشتم تنظیمات رو انجام بدید.
۱/۲ #فیلترنت
اینطوری علاوه بر حل مشکل اپ و وبسایتهای ایرانی، در مصرف ترافیکتون هم به شدت صرفهجویی میشه چون وقتی با vpn وصل هستید، کل ترافیکتون با تعرفهی جهانی محاسبه میشه ولی اینطوری ترافیک ایران، داخلی محاسبه میشه (نیمبها).
۲/۲
اگه سرور xray/v2ray دارید و به واسطهی تغییرات سیستم فیلترینگ و یا دلایل دیگه مجبورید دائم کانفیگهای جدید ایجاد کنید و به استفاده کنندهها برسونید، در ادامه یک روش ساده برای حل این مشکل نوشتم.👇
۱/۵
برای این کار لازمه که یک لینک عضویت یا subscription درست کنیم و کانفیگها رو از طریق لینک عضویت، در اختیار استفادهکنندگان قرار بدیم.
اینطوری وقتی کانفیگهای قبلی منقضی شدن و یا کانفیگ جدید داشتیم، اونها رو در لینک عضویت قرار میدیم و دیگه اعضا فقط یه آپدیت لازم دارن.
۲/۵
برای ایجاد لینک عضویت، یک تکه کد کوچیک نوشتم (تصویر پایین) که میتونید به سادگی روی یک worker از نوع http handler در کلادفلر بنویسید و کانفیگهای خودتون رو در لیست ابتدای کد، یکی یکی اضافه کنید، هر تعداد که بود؛ و در نهایت کد رو save and deploy کنید.
۳/۵