Skip to content

راه‌اندازی سرور و ساخت کانفیگ با Katabump

این روش چیه؟

روش جدیدی که با استفاده از سرور ارائه شده توسط Katabump میتوان چند نوع کانفیگ v2ray راه‌اندازی کرد.

پیش‌نیازها

برای این آموزش به این لینک‌ها نیاز است:

  • لینک وب‌سایت Katabump:

katabump.com

  • ابزار مبهم‌ساز کد (Code Obfuscator):

js-obfuscator.github.io

  • مخزن کانفیگ (مرجع):

github.com/qlxi/Xray-Sing-node

مبهم‌سازی کد قبل از اینکه استفاده کنید اجباری است؛ اما نگران نباشید چون فایل کد زیر با همان ابزار مبهم‌سازی که بهش اشاره شد از قبل مبهم شده است.

📦 برای دانلود فایل زیپ مورد نیاز اینجا کلیک کنید

فایل بالا را extract کنید؛ محتوای آن در مرحله‌ی آپلود فایل‌ها استفاده میشود، یا فایل‌ها را مستقیماً آپلود می‌کنید یا محتوای هرکدام را کپی و در محل مربوطه جای‌گذاری می‌کنید.

نکته مهم درباره‌ی کیفیت و تمدید سرور

این کانفیگ Hysteria2 و دیگر پروتکل‌ها روی ایرانسل و سامانتل نتایج خوبی داشته و اتصال پایداری از خود نشان می‌دهند. نکته‌ی مهم این است که هر ۴ روز یک‌بار باید سرور را از داشبورد سایت renew کنید تا غیرفعال نشود.

نکات فنی مهم قبل از شروع

  • حداقل امکانات سرور: این کانفیگ چند باینری (sing-box + در صورت فعال بودن، Xray-core و Cloudflared) دانلود و اجرا می‌کند. سرویس‌های اصلی (Hysteria2 + VLESS-WS) با پلن‌های خیلی محدود (چند صد مگابایت دیسک/رم) هم بالا می‌آیند، اما اگر Argo (تانل Cloudflare) را هم فعال نگه دارید، حداقل چیزی حدود ۲۰۰–۳۰۰ مگابایت فضای دیسک آزاد اضافه لازم دارید؛ در غیر این صورت ممکن است در لاگ با خطای کمبود فضا برای Argo مواجه شوید که این مشکل نیز حل شده و بقیه‌ی سرویس ها بدون مشکل کار می‌کنند.

  • تنظیمات از طریق ویرایش خود فایل: پنل Katabump (روی برخی پلن‌ها) از تعریف Environment Variable پشتیبانی نمی‌کند. پس اگر لازم شد چیزی را تغییر بدهید (مثلاً مسیر ذخیره‌سازی فایل‌ها، خاموش‌ کردن Argo برای صرفه‌جویی در منابع، یا SNI)، باید مقدار پیش‌فرض همان تنظیم را مستقیماً داخل فایل JS، قبل از آپلود، ویرایش کنید.

  • مسیر ذخیره‌سازی فایل‌ها: اگر روی سروری هستید که پوشه‌ی موقت (/tmp) آن به‌جای دیسک واقعی از RAM استفاده می‌کند، بهتر است مسیر ذخیره‌سازی را به یک زیر پوشه کنار خود پروژه (مثلاً xray-sing کنار فایل اصلی) تغییر دهید تا مصرف دیسک را با رم اشتباه نگیرد.

مرحله ۱: ثبت‌نام

برای شروع باید یک اکانت در Katabump بسازید:

  • می‌توانید با جیمیل ثبت‌نام کنید.
  • در فیلدهای First Name و Last Name، هرکدام باید بیش از یک کاراکتر باشند (مثلا وارد کردن چیزی مثل ali k در یکی از این فیلدها قبول نمی‌شود.)
  • برای رمز عبور، می‌توانید خودتان یک رمز وارد کنید یا از رمز قوی پیشنهادی مرورگر کروم استفاده کنید.

📷 تصاویر این مرحله

تصویر ۱ از ۲:

مرحله ثبتنام - تصویر ۱


تصویر ۲ از ۲:

مرحله ثبتنام - تصویر ۲


مرحله ۲: ساخت و ورود به پنل مدیریت سرور

در این مرحله سرور ساخته شده و وارد پنل مدیریت آن می‌شوید.

📷 تصاویر این مرحله

تصویر ۱ از ۵:

مرحله ساخت و ورود به پنل - تصویر ۱


تصویر ۲ از ۵:

مرحله ساخت و ورود به پنل - تصویر ۲


تصویر ۳ از ۵:

مرحله ساخت و ورود به پنل - تصویر ۳


تصویر ۴ از ۵:

مرحله ساخت و ورود به پنل - تصویر ۴


تصویر ۵ از ۵:

مرحله ساخت و ورود به پنل - تصویر ۵


مرحله ۳: آپلود فایل‌ها

فایل zip که در بخش پیش‌نیازها اشاره شد را extract کنید؛ محتوای آن اکنون در این مرحله استفاده می‌شود. در تصاویر زیر، محل و نحوه‌ی آپلود هر دو فایل‌ index.js و package.json با رنگ سبز مشخص شده است.

قبل از آپلود

اگر می‌خواهید تنظیمات پیش‌فرض (مثل خاموش‌کردن Argo روی پلن‌های کم منبع، یا مسیر ذخیره‌سازی فایل‌ها) را عوض کنید، الان قبل از آپلود زمان مناسبی است. همانطور که در «نکات فنی مهم قبل از شروع» گفته شد، این تغییرات باید مستقیم داخل فایل JS اعمال شوند، چون امکان تعریف Environment Variable از طریق پنل وجود ندارد.

بعد از آپلود، ساختار پوشه‌ی پروژه روی سرور شبیه این است — همان فایلی که آپلود می‌کنید (index.js) جایی است که باید ویرایشش کنید:

/home/container/              (project root on Katabump)
├── index.js                  ← edit this file
├── package.json
└── xray-sing/                (created automatically by the app at runtime)

نمونه ۱ — خاموش‌کردن Argo روی پلن‌های کم‌منبع:

داخل index.js دنبال این خط بگردید و مقدار جلوی ENABLE_ARGO را با false جایگزین کنید:

js
    CFPORT: parseInt(process.env.CFPORT || "443", 10),

    // Argo enabled by default (set ENABLE_ARGO=0 to disable)
    ENABLE_ARGO: !(process.env.ENABLE_ARGO === "0" || process.env.ENABLE_ARGO === "false"), 
    ARGO_DOMAIN: process.env.ARGO_DOMAIN || "",

نمونه ۲ — تغییر مسیر ذخیره‌سازی فایل‌ها:

اگر مسیر پروژه‌ی شما با /home/container فرق دارد، همین خط را به مسیر درست خودتان تغییر بدهید:

js
    const candidates = [
        "/home/container/xray-sing", 
        path.join(__dirname, "xray-sing"), // next to this script, wherever it runs
        path.join(process.cwd(), "xray-sing"), // current working directory fallback
        path.join(os.tmpdir(), "xray-sing"),   // last resort (may be tmpfs/RAM)
    ];

📷 تصاویر این مرحله

تصویر ۱ از ۳:

مرحله آپلود فایل‌ها - تصویر ۱


تصویر ۲ از ۳:

مرحله آپلود فایل‌ها - تصویر ۲


تصویر ۳ از ۳:

مرحله آپلود فایل‌ها - تصویر ۳


مرحله ۴: مرحله آخر — دریافت آدرس پنل و ساب

در این مرحله، همانطور که در تصاویر زیر دیده می‌شود، آدرس پنل و لینک ساب داخل لاگ‌ها نمایش داده می‌شود و نیازی به کار اضافه‌ای نیست و می‌تونید به پنل و ساب ها دسترسی داشته باشید.

تصاویر این مرحله

تصویر ۱ از ۳:

مرحله آخر - تصویر ۱


تصویر ۲ از ۳:

مرحله آخر - تصویر ۲


تصویر ۳ از ۳:

مرحله آخر - تصویر ۳


مشکلات رایج

در لاگ نوشته "Argo link not ready" یا خطای کمبود فضا برای Argo دیدم، چیکار کنم؟

یعنی فضای دیسک آزاد کافی (حدود ۶۰ مگابایت یا بیشتر) برای دانلود cloudflared وجود نداشته. بقیه‌ی سرویس‌ها (Hysteria2، VLESS-WS و...) بدون مشکل کار می‌کنند و فقط همین بخش (Argo/تانل Cloudflare) در آن اجرا در دسترس نیست. اگر واقعاً به Argo نیاز ندارید، بهترین راه‌حل همون بلوک کد «نمونه ۱» در بخش «مرحله ۳: آپلود فایل‌ها» است — همون خطِ ENABLE_ARGO را داخل index.js پیدا کنید و مقدارش را false بگذارید:

js
    CFPORT: parseInt(process.env.CFPORT || "443", 10),

    // Argo enabled by default (set ENABLE_ARGO=0 to disable)
    ENABLE_ARGO: !(process.env.ENABLE_ARGO === "0" || process.env.ENABLE_ARGO === "false"), 
    ARGO_DOMAIN: process.env.ARGO_DOMAIN || "",

این کار هم فضا و هم رم بیشتری برای بقیه‌ی سرویس‌ها آزاد می‌کند.