Skip to content

Repository files navigation

R (2) نام پروژه : پنل وایرگارد


check امکانات

▪  Dashboard کامل برای نمایش وضعیت سرور و پنل، مصرف CPU، RAM، Disk، Network و اطلاعات WireGuard

▪  مدیریت کامل Peerها در سرور اصلی و Nodeها شامل Create، Bulk create، Edit، Enable، Disable، Reset usage، Reset timer، QR Code، Config، Short Link، Logs و نمایش اطلاعات کامل Peer

▪  مدیریت Interfaceها در سرور اصلی و Nodeها شامل ساخت Interface جدید، فعال/غیرفعال کردن، حذف، تنظیم DNS، MTU، Listen Port و Start after creation

▪  هنگام ساخت Interface جدید، تنظیمات مورد نیاز WireGuard و Ruleهای مربوط به Forward و NAT به صورت خودکار ساخته میشود

▪  Subscription چند Location برای ساخت یک Client با چند Config از Interfaceهای Local، Node یا ترکیبی از هر دو

▪  در Subscription میتوان از Peerهای موجود استفاده کرد یا برای Interfaceهای انتخاب‌شده Peer جدید ساخت

▪  پشتیبانی از Data Limit، Time Limit، Start timer on first use و Clientهای Unlimited برای Peer و Subscription

▪  نمایش Data remaining، Time remaining و وضعیت Client در Subscription

▪  امکان اضافه کردن شماره تلفن و Telegram ID برای Peerهای Local و Node

▪  Advanced WireGuard options شامل DNS، MTU، Keepalive، Allowed IPs، Server Endpoint و Fixed Client Endpoint

▪  Allowed IPs به صورت قابل مدیریت است و میتوان Networkها را اضافه یا حذف کرد؛ همچنین Networkهای Local و Node میتوانند به صورت خودکار شناسایی و اضافه شوند

▪  Profile برای Peer و Subscription جهت ذخیره و استفاده مجدد از تنظیمات؛ امکان انتخاب Profile پیش‌فرض، Apply، Edit و Delete نیز وجود دارد

▪  Public Subscription Page برای هر Client شامل وضعیت، حجم باقی‌مانده، زمان باقی‌مانده، Configها، QR Code، Download و Support

▪  امکان دانلود Config هر Location به صورت جداگانه یا دانلود تمام Configهای Subscription

▪  Subscription Template Studio برای طراحی صفحه Public Subscription با Live Preview واقعی در حالت Desktop و Mobile

▪  امکان شخصی‌سازی مستقل Template برای هر کاربر به‌صورت جداگانه

▪  امکان تغییر Layout، Background، Live Background، Animation، Motion، Statistics، Colors، Surface، Radius، Shadow، Density، Font scale و Page width

▪  امکان تغییر نحوه نمایش Configها، تعداد ستون‌ها، ترتیب Sectionها و نمایش یا مخفی کردن بخش‌هایی مانند Usage، Configs، Install WireGuard و Support

▪  امکان تغییر Header، Title، Subtitle، Header icon، Logo size و Alignment

▪  پشتیبانی از Dark Mode، Light Mode و Auto Mode در Public Subscription و خود پنل

▪  امکان اضافه کردن Support link شامل Telegram، WhatsApp، Phone، Email، Website و Instagram؛ فقط مواردی که مقدار داشته باشند در صفحه Public نمایش داده میشوند

▪  مدیریت Nodeها از پنل اصلی با API Key جداگانه، نمایش وضعیت Online/Offline/Disabled، تعداد Peer و Interface، Search، Filter، Refresh و Test connection

▪  Peerها و Interfaceهای Node بدون نیاز به ورود مستقیم به سرور Node از پنل اصلی قابل مدیریت هستند

▪  دارای اسکریپت جداگانه برای نصب و تنظیم Panel و Node شامل Virtual Environment، Requirements، WireGuard، تنظیمات .env، Runtime و Telegram

▪  Backup و Restore کامل از Database، Settings، Subscriptionها، Short Links، Profileها، Interfaceها، Peerها و Configهای WireGuard مربوط به Local و Node

▪  پشتیبانی از Manual Backup و Auto Backup، دانلود Backup، ارسال به Telegram، مشاهده آخرین Backup و Inspect قبل از Restore

▪  Restore با حالت‌های مختلف مانند Auto، Full و Database و امکان انتخاب اینکه تنظیمات فعلی سرور حفظ شوند یا از Backup استفاده شود

▪  امکان استفاده از Full Backup برای انتقال Panel و Nodeها به سرور جدید

▪  Logs کامل برای Panel، Telegram Bot، Telegram Admin و Interfaceها با Search، Filter، Level، Auto Refresh، Local Time، Humanize و Export به CSV یا NDJSON

▪  Telegram Bot برای مدیریت Peerهای Local و Node، Search، Create، Edit، Enable، Disable، Reset، Delete، دریافت Config و QR Code، مدیریت Profileها، Backup و Restore

▪  امکان دریافت Notificationهای مربوط به Panel و Node از طریق Telegram و پشتیبانی از چند Admin

▪  Settings کامل برای Telegram Bot، Bot Token، Adminها، Panel Runtime، Interfaceها و سایر تنظیمات پنل

▪  امکان تغییر Port، Worker، Thread، Timeout و Restart کردن Panel از داخل پنل

▪  تنظیمات امنیتی شامل HTTPS، Domain، HTTPS Port، Certificate، Private Key، HTTP → HTTPS Redirect و HSTS

▪  دارای سیستم Login برای Admin، تغییر Username و Password و پشتیبانی از 2FA با TOTP همراه QR Code، Manual Key و Recovery Code

▪  دارای Short Link برای Peer و Subscription و امکان انتخاب Templateهای مختلف برای صفحات Client

▪  Update از داخل پنل با دریافت نسخه جدید از Repository، Validation فایل‌ها و Rollback خودکار در صورت ناموفق بودن Update

▪  امکان انتقال کامل Panel، Subscriptionها، Short Linkها و Nodeها به سرور جدید با استفاده از Full Backup و نصب مجدد Panel/Node


🌐 Endpoint پیش‌فرض برای هر Interface

آدرس Endpoint سرور که داخل Config مربوط به Client نوشته میشود به صورت خودکار از روی Domain یا Public IP پنل تشخیص داده میشود.

اگر پنل پشت NAT، Reverse Proxy یا Load Balancer باشد، یا سرور بیش از یک Public IP یا Domain داشته باشد، ممکن است تشخیص خودکار Endpoint مقدار مورد نظر شما را انتخاب نکند. در این حالت میتوان برای هر Interface یک Endpoint پیش‌فرض مشخص کرد.

  • این تنظیم برای Interfaceهای Local و Interfaceهای Node قابل استفاده است
  • تنظیم Endpoint پیش‌فرض از قسمت Settings و بخش Interface انجام میشود
  • Host میتواند Domain یا IP باشد
  • Port میتواند Port واقعی WireGuard مربوط به همان Interface باشد
  • با خالی کردن Host و Port، دوباره Automatic Endpoint Detection فعال میشود
  • Endpoint پیش‌فرض روی Configهایی که از آن Interface Export میشوند استفاده میشود
  • Peerهایی که Endpoint اختصاصی برای آنها تعیین شده است میتوانند مقدار جداگانه خود را داشته باشند
  • تغییر Endpoint پیش‌فرض به صورت عادی Peerهای قبلی را تغییر نمیدهد
  • برای اعمال Endpoint جدید روی Peerهای موجود میتوان از گزینه Apply to existing peers استفاده کرد
  • قبل از Apply میتوان مشخص کرد فقط Peerهایی که Endpoint اختصاصی ندارند تغییر کنند یا Endpointهای قبلی نیز Overwrite شوند
  • این قابلیت برای زمانی که Domain یا Public IP سرور تغییر میکند بسیار کاربردی است

مثال Host:

vpn.example.com

یا:

203.0.113.9

مثال Port:

51820

Fixed Client Endpoint

در حالت عادی بهتر است این قسمت خالی بماند و Client از Endpoint نرمال Interface استفاده کند.

  • این گزینه برای استفاده معمولی کاربران لازم نیست
  • برای موبایل، لپ‌تاپ، اینترنت سیم‌کارت، CGNAT و Clientهایی که IP آنها تغییر میکند بهتر است خالی بماند
  • میتوان برای Clientهایی که Public IP یا DNS ثابت دارند از آن استفاده کرد
  • میتوان از آن در بعضی طراحی‌های Site-to-Site استفاده کرد
  • اگر سمت Client پشت یک Load Balancer یا Gateway با آدرس ثابت قرار داشته باشد و UDP مورد نیاز به همان Client Forward شود نیز میتوان از Fixed Client Endpoint استفاده کرد
  • مقدار آن میتواند به صورت Domain یا IP همراه با UDP Port باشد
  • اگر این قسمت خالی باشد، اینترفیس اتوماتیک سرور انتخاب میشود
  • استفاده اشتباه از Fixed Client Endpoint میتواند باعث قطع اتصال Client شود، به همین دلیل بهتر است فقط در مواردی که Client دارای Endpoint ثابت است استفاده شود

مثال:

client.example.com:51820

یا:

203.0.113.20:51820

نصب پنل با اسکریپت :

sudo bash -c 'command -v curl >/dev/null 2>&1 || (apt-get update -y && apt-get install -y curl ca-certificates); bash -c "$(curl -fsSL https://raw.githubusercontent.com/Azumi67/WG_Panel/refs/heads/main/wg.sh)"'
  • سپس با کامند wgpanel میتوانید اسکریپت را اجرا کنید
wgpanel

نصب node بر روی سرور با اسکریپت:

sudo bash -c 'command -v curl >/dev/null 2>&1 || (apt-get update -y && apt-get install -y curl ca-certificates); bash -c "$(curl -fsSL https://raw.githubusercontent.com/Azumi67/WG_Panel/refs/heads/main/agent/node.sh)"'
  • سپس با کامند node میتوانید اسکریپت را اجرا کنید
node

6348248 آموزش نصب پنل با اسکریپت

Image نحوه نصب با install everything
  • پس از انکه گزینه install everything را انتخاب کردید نخست پیش نیاز ها را نصب میکند و از شما سوال میکند که پروژه را clone کند یا خیر
  • وقتی که گزینه clone را بزنید باید مسیر directory را بدهید. به صورت پیش فرض مسیر /usr/local/bin است. من به صورت دیفالت مسیر را تغییر نمیدهم
  • سپس میخواهد venv و پیش نیاز ها را نصب کند. گزینه y را وارد میکنم
  • سپس input های .env پرسش میشود که به شرح زیر میتوانید وارد نمایید
  • نخست کلید های fernet, flask & api به صورت رندوم generate میشود که میتوانید enter کنید
  • دیتابیس url و log level هم میتوانید به صورت دیفالت enter کنید
  • قسمت secure cookies برای استفاده از https است که من گزینه 1 را وارد میکنم
  • توکن setup برای وقتی هست که شما میخواهید برای پنل register انجام دهید و انجا باید این توکن را وارد نمایید
  • مسیر وایرگارد و tg_heartbeat را هم میتوانید به صورت پیش فرض enter نمایید
  • سپس از شما میپرسد که ایا این همان چیزی هست که وارد کردید و یک live preview به شما نشان میدهد. اگر درست است گزینه y را وارد میکنم
  • سپس کانفیگ وایرگارد را پیکربندی میکند.
  • گزینه y را وارد نمایید و حالا باید گانفیگ وایرگارد را بسازیم که طبق اسکریپت برای ساختن اینترفیس جدید باید N را وارد نمایم. از من نام اینترفیس سوال میشود که به صورت پیش فرض باید قرار داد. wg0, wg1 و ..
  • پرایوت ایپی ادرس برای این اینترفیس انتخاب میکنم ( دقت نمایید که این ایپی بلاک نباشد) و هم چنین پورت هم وارد میکنم
  • سپس گزینه y را وارد نمایید تا دستورات iptables وارد شود و هم چنین اینترفیس سرور را وارد نمایید که معمولا eth و ens و .. است
  • سپس کلید های مربوطه به وایرگارد را نشان میدهد و اگر همه چی درست باشد باید گزینه y را بزنید تا اینترفیس مربوطه ذخیره شود
  • سپس تنظیمات panel را کانفیگ میکنم. بنابراین گزینه y را وارد میکنم.
  • برای پنل گزینه tls را فعال میکنم. برای اینکار باید ساب دامین مربوطه هم وارد نمایم. پورت https که معمولا 443 است را وارد میکنم و گزینه y را وارد میکنم تا ذخیره شود.
  • سپس runtime را کانفیگ میکنم. اگر tls را انتخاب کردید این قسمت به صورت اتوماتیک کانفیگ میشود. بنابراین وقتی از شما سوال میشود که به صورت اتوماتیک tls در runtime فعال شود میتوانید گزینه y را وارد نمایید چون قبلا tls را فعال کرده ام.
  • سپس سرویس های مربوطه ساخته میشود و از شما میخواهد در صورت نیاز تلگرام بات را کانفیگ کنید که من y را وارد میکنم.
  • بات توکن را که از botfather گرفته ام وارد میکنم و برای دسترسی به بات هم باید ادمین id و یوزر نیم را وارد نمایم. همچنین notification ها را فعال میکنم. توجه کنید که ادمینی که ساختید mute نکنید. ( سوال پرسیده میشود)
  • گزینه mute را n وارد میکنم و تنظیمات telegram را ذخیره میکنم


images اسکرین شات:

داشبورد پنل

menu screen

peers

menu screen

Subscription

menu screen

logs

menu screen

Quick & telegram backups

menu screen

Settings>Telegram section

menu screen

Settings>telegram bot

menu screen

template settings

menu screen


About

Wireguard panel (Written with Flask) with a nice dashboard to manage interfaces/peers, track usage, set expiry/limits, view server metrics. Includes a guided CLI (wg.py) for install/update/backup plus node creation for managing multiple servers.

Topics

Resources

Stars

43 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages