معرفی پروژه نهان
پروژه نهان (Nahan) یک راهکار توزیع ترافیک و پروکسی معکوس بدون سرور (Serverless) در بستر کلودفلر است. در این ساختار بدون نیاز به تهیه سرور مجازی شخصی (VPS)، با استفاده از معماری لبه کلودفلر و پایگاه داده با کارایی بالای SQLite D1، ترافیک شبکهی کاربران به صورتی همگام و ایمن در بستر اینترنت هدایت میشود.
مراحل نصب گامبهگام مصور (Interactive Mockups)
بخش اول: ساخت پایگاه داده D1 کلودفلر
گام اول: منوی ناوبری و رفتن به بخش دیتابیس D1
در پنل کلودفلر، منوی کناری را باز کرده و ابتدا از شاخه Storage & databases گزینهی D1 SQLite Database را انتخاب کنید.
گام دوم: ایجاد و ساخت دیتابیس نو
در صفحه دیتابیس D1، بر روی دکمهی اختصاصی Create Database کلیک نمایید.
D1 Databases
...گام سوم: نامگذاری دیتابیس بر مبنای قوانین نام کاربری
در فیلد Name نام دیتابیس خود را با حروف کوچک انگلیسی وارد کرده و بر روی کلید آبی رنگ Create کلیک کنید.
بخش دوم: ساخت نرمافزار لبه (Worker)
گام اول: ساخت اپلیکیشن ورکر جدید
از منوی کناری به بخش Compute -> Workers & Pages رفته و روی دکمهی آبی رنگ Create application کلیک کنید.
Build & deploy serverless functions, sites, and full-stack applications.
گام دوم: انتخاب قالب پایه و دپلو اولیه
بر روی دکمهی قالب پیشفرض یعنی Start with Hello World! کلیک نمایید. در مرحله بعد نام ورکر را تعیین نموده و روی دکمه آبی رنگ Deploy کلیک کنید.
بخش سوم: اتصال (Bind) پایگاه داده به Worker
گام اول: ورود به بخش تنظیمات Bindings ورکر
پس از اتمام دپلو اولیه، در داشبورد ورکر خود وارد زبانه Settings و زیرمنوی Bindings شده، و بر روی کلید Add binding کلیک نمایید.
گام دوم: تعریف متغیر IOT_DB و پیوند دیتابیس D1
از منوی کشویی نوع بایندینگ را بر روی گزینه D1 database قرار داده و فیلدها را مطابق ماکاپ زیر پر کرده و روی دکمهی آبی رنگ Add Binding کلیک نمایید.
Add a D1 database binding
The name used to refer to this binding.
ورود اولیه به سیستم و امنیت
پس از جایگذاری کدهای اصلی در ادیتور آنلاین و دپلو کردن، برای ورود به پنل باید عبارت زیر را به انتهای آدرس دامنهی ورکر خود اضافه کنید:
کلمه عبور اولیه برای ورود به پنل، عبارت admin با حروف کوچک است که باید بلافاصله پس از اولین ورود موفقیتآمیز، جهت امنیت از تنظیمات پنل تغییر داده شود.
تب نقاط اتصال و اشتراک هوشمند
سربرگ نقاط اتصال حاوی اطلاعات اتصالات و آدرسهای ساباسکریپشن هر مشترک است. در نسخههای جدیدتر، قالبهای مجزای قدیمی آلفا، بتا و گاما حذف شده و همگی در یک لینک اشتراک همگانی واحد (Universal Sync URL) ادغام شدهاند.
این لینک ساب هوشمند، کلاینت متصل شده (نظیر Clash، Sing-Box، Shadowrocket و غیره) را از روی امضای مرورگر تشخیص داده و کدهای متناسب با هسته آن نرمافزار را صادر میکند.
تنظیمات پیشرفته و قابلیتهای کلاستر
در تب تنظیمات پیشرفته، متغیرهای متعددی جهت شخصیسازی رفتارهای لایه عبور شبکه طراحی شده است:
امکان تعریف دامنهی سایر ورکرهای کمکی جهت همگامسازی و همسانسازی خودکار تنظیمات از نود مادر.
تغییر شیوهی درج پورت، شناسه کاربر، نام دامنه یا پیشوندهای سفارشی در کلاینت نهایی.
افزایش سرعت هندشیک اولیه و پنهانسازی اطلاعات SNI ارسالی به مقصد کلودفلر.
قابلیت اتصال ربات اختصاصی جهت کنترل مصرف، جستجوی کاربران و مانیتورینگ پنل.
مدیریت کاربران و قطع خودکار
یکی از کاربردیترین قابلیتهای ارائهشده در نسخه ۳.۰.۱، سیستم توقف اتوماتیک حسابهای مصرفی و منقضیشده (Auto-Disable) و کنترل لحظهای تعداد کانفیگها است.
زمانی که ترافیک کلی مصرفشده یک کاربر از سقف مجاز فراتر رود یا انقضای زمانی وی به اتمام برسد، پایگاه داده SQLite D1 بلافاصله وضعیت آن کاربر را به صورت خودکار به حالت غیرفعال تغییر میدهد تا از بار اضافی ترافیکی ورکر جلوگیری شود.
کدهای سورس ورکر (_worker.encode.js)
آماده دپلو و پایداردر نسخه ۳.۰.۱، کدهای ورکر به صورت رسمی و بهینهسازیشده در فایل _worker.encode.js کدگذاری شدهاند تا بدون ریسک شناسایی توسط روباتهای کلودفلر، به صورت مستقیم در ویرایشگر ورکر مستقر شوند. نیازی به انجام فرایند دستی مبهمسازی نیست.
_worker.js
💡 راهنمای استقرار در کلودفلر:
تمام محتوای بالا را کپی کرده یا با دکمه دانلود دریافت نمایید. سپس در داشبورد Cloudflare به ورکر ساختهشده رفته، دکمه Edit Code را بزنید، محتوای قبلی فایل _worker.js را پاک کرده و کدهای این فایل را جایگزین نموده و دکمه Deploy را کلیک کنید.