فعلا پنل در حالت بتا و تست قرار دارد تا من تمام مشکلاتش را پیدا کنم(اگر موردی پیدا کردید حتما در issue اطلاع دهید که بررسی بشود)
این پروژه از xray استفاده نمیکند و تمام کارها را خود وایرگارد انحام میدهد.xray برای وارپ اضافه شده بود اما چون از خود وایرگارد استفاده میکنیم، از وارپ و xray نمیشود استفاده کرد.تنها وارپی که میتونم اضافه کنم وارپ wgcf و پلاس ان میباشد.
مشکل پاک شدن db به دلیل overwrite با اضافه شدن چندین قفل حل شده است( همیشه به صورت متداول backup بگیرید)
همیشه قسمت اپدیت را مطالعه بفرمایید و نسبت به اپدیت پنل اقدام نمایید. از طریق لینک اسکریپت و گزینه 1
این پروژه اموزشی است و استفاده از ان بر عهده شما میباشد. در صورت وجود مشکل باعث ناراحتی شما نشود. نخست تست بفرمایید و در صورت نیاز از آن استفاده نمایید
مشکلات تایم زون مختلف (بخوانید)
- اگر اوپتیمایزر نصب کردید و محاسبه زمان و حجم توقف کرد، حتما به خاطر وجود دو تایم زون در سیستم شما است که تا برطرف نشود، مشکل شما هم حل نمیشود
- باید از دستورات زیر استفاده نمایید تا تایم زون و لوکال تایم با هم سینک باشند
- بعد از سینک کردن ان، باید پنل را ریست نمایید
cat /etc/timezone
به طور مثال این را میبینید : Etc/UTC, Europe/Berlin
ls -l /etc/localtime
به طور مثال این را میبینید : /usr/share/zoneinfo/Europe/Berlin
خب بین انها تضاد آست و باید درست شود
echo "Europe/Berlin" | sudo tee /etc/timezone
sudo dpkg-reconfigure -f noninteractive tzdata
cat /etc/timezone
ls -l /etc/localtime
بررسی کنید هر دو یکی باشد
timedatectl
حالا اگر همه چی درست بود باید پنل را ریست نمایید
مشکلات احتمالی (بخوانید)
- اگر سرور شما مشکل dns دارد اول مشکل ان را رفع کنید یا از سرور و Os ای استفاده کنید که چنین مشکلی ندارد. حتی میتوانید dns را از قسمت کانفیگ وایرگارد پاک کنید
- ترجیجا از دبیان 12 استفاده نمایید. من بر روی دبیان 12 و amd مشکلی نداشتم
- دو کاربر با نام یکسان در یک اینترفیس نسازید.
- همیشه اگر مشکلی دارید لطفا فسمت لاگ ها را نگاه کنید یا گزینه debug در config.yaml را به true تغییر دهید
- اگر سرویس شما به هنگام ریست از کار می افتد مشکل شما در virtual env است . پوشه venv در /usr/local/bin/Wireguard-panel/src . ان مشکل را برطرف کنید
- اگر از os ای استفاده میکنید که مشکلات iproute و wireguard tools دارد لطفا اطمینان یابید که چنین مشکلاتی ندارد . در این پنل از مسیر اصلی دستورات که داخل sbin هستند استفاده شده است/چند نمونه مثال پایین اوردم. اگر این مورد خیلی اذیت کرد لطفا اطلاع دهید که مسیر اصلی را پاک کنم و این مشکل حل بشود اما نباید روی بیشتر os ها مشکلی داشته باشد
- فعلا مسیر اصلی دستورات را پاک کردم و این موضوع در bandit به عنوان مورد قابل بازبینی در نظر گرفته میشود تا ببینم بعدا چی میشه
- باید توجه داشته باشید که از داخل موبایل، من پنل را تست نکردم.ممکن است با مشکلاتی مواجه شوید یا با کامپیوتر به ان متصل شوید یا برای مویایل از طریق بات استفاده نمایید.
- کانفیگ وایرگارد را از wg0.conf آغاز کنید و نام های رندوم ندهید
- یوزر و پسورد خود را فراموش نکنید و از گزینه remember me استفاده نمایید
- لطفا حتما به سیستم عامل نصبی خود دقت کنید که چنین مشکلاتی نداشته باشد وگرنه پنل برای شما کار نخواهد کرد.
- اگر دیگران هم دوست داشتند میتوانند سایر os ها را تست کنند و به پنل اضافه کنند .
- پنل اختلالی در تانل شما به وجود نمی اورد. از لوکال ایپی ها همراه با تانل استفاده نمایید. حتما cache و data storage کلاینت خود را در موبایل پاک نمایید. ممکن تانل شما برای این مورد کار نکند.
- از ایپی لوکال در صورت محدودیت بر روی سرورتان استفاده نمایید. به طور مثال geneve - لینک اسکریپت لوکال : https://github.com/Azumi67/6TO4-GRE-IPIP-SIT
- بعد از اپدیت پنل همیشه پنل را ریست کنید. اپدیت هم که به این صورت میباشد که wire را میزنید و گزینه 10 یا از اسکریپت دانلود ، ان را داخل سرور اجرا میکنید و گزینه اول. بعد از اتمام اپدیت، لطفا پنل و بات را ریست نمایید
sudo apt update
sudo apt install iproute2
which ip
باید این مسیر /sbin/ip را نشان دهد
export PATH=$PATH:/sbin:/usr/sbin
sudo chmod +x /sbin/ip
و برای وایرگارد
sudo apt update
sudo apt install wireguard-tools
which wg-quick
sudo ln -s $(which wg-quick) /sbin/wg-quick
sudo chmod +x /sbin/wg-quick
which wg
باید به این صورت باشد
/usr/bin/wg
مشکلات DNS (بخوانید)
- سرور شما مشکل dns داشته باشد هم کارایی پنل پایین خواهد امد و هم بات از کار می افتد. من از داخل اسکریپت قسمت dns هم برداشتم
- اگر سرور شما مشکل dns دارد، میتوانید از اوپتیمایزر استفاده کنید
- بر روی سرور debian 12 و ubuntu24 میتوانید از دستورات زیر استفاده نمایید
sudo nano /etc/systemd/resolved.conf
این مقادیر را به آن اضافه کنید
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=1.0.0.1 8.8.4.4
### now Ctrl + x , y to save ###
sudo systemctl restart systemd-resolved
sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
حالا بررسی کنید که تغییرات اعمال شده است
cat /etc/resolv.conf
crontab -e
اینو اضافه کنید
* * * * * echo -e "nameserver 1.1.1.1\nnameserver 1.0.0.1" > /etc/resolv.conf
ذخیره کنید و خارج شوید
- اگر مشکل شما حتی با اوپتیمایزر و پاک کردن dns وایرگارد و حتی systemd-resolve و ست کرون جاب هم درست نشد باید سرور خود را عوض کنید . ترجیحا از دبیان 12 amd استفاده نمایید
- من تا حالا روی سرور های دیجیتال اوشن که تست کردم مشکلی نداشتم.
نحوه گزارش و debug
- اگر مشکلی در خود پنل و اجرا نشدنش دارید با دستورهای زیر میتوانید مشکل را متوجه شوید
systemctl status wireguard-panel
systemctl stop wireguard-panel
---------------------------------------
## change debug=false >> debug=true
nano /usr/local/bin/Wireguard-panel/src/config.yaml
پس از تغییر دیباگ، ان را ذخیره کنید و خارج شوید
/usr/local/bin/Wireguard-panel/src/venv/bin/python3 /usr/local/bin/Wireguard-panel/src/app.py
حالا باید ببینید چه خطایی گرفتید تا بشود مشکل شما را فهمید
- برای سرویس های بات هم به همین صورت عمل میکنیم
بسته به نوع سرویس فارسی یا انگلیسی
systemctl status telegram-bot-fa
systemctl stop telegram-bot-fa
/usr/local/bin/Wireguard-panel/src/venv/bin/python /usr/local/bin/Wireguard-panel/src/telegram/robot-fa.py
برای انگلیسی
systemctl status telegram-bot-en
systemctl stop telegram-bot-en
/usr/local/bin/Wireguard-panel/src/venv/bin/python /usr/local/bin/Wireguard-panel/src/telegram/robot.py
حالا باید خطا را ببینید و مشکل را حل کنید
- پس از رفع مشکل، سرویس ها را ریست نمایید
تانل
- من خودم از لوکال ایپی geneve با پورت فوروارد خودم استفاده میکنم (مصرف شخصی دارم) : https://github.com/Azumi67/proxyforwarder
- شما میتوانید از لوکال و dokodemo استفاده نمایید.
- ممکن است پورت فوروارد به کار شما نیاید. برای همین میتوانید از ریورس های frp یا backhaul و حتی تانل udp2raw و چیزل استفاده نمایید.
- برای لوکال ایپی هم میتوانید از این اسکریپت استفاده نمایید : https://github.com/Azumi67/6TO4-GRE-IPIP-SIT
- اگر باز هم مشکل داشتید باید چند کار انجام دهید . با نصب اوپتیمایزر هم تانل را تست کنید و حواستان به فایروال ufw هم باشد
- دقت کنید گاهی اوقات کلاینت وایرگارد در کامپیوتر و موبایل میتواند باعث stuck شدن 92B شود. کامپیوتر را ریست کنید و در داخل موبایل date storage و cache را خالی نمایید
- اگر باز هم مشکل داشتید باید سرور خارج خود را عوض کنید. سپس مشکل شما حل میشود
- بیشتر مورد های تانل وایرگارد در همین موارد خلاصه میشود
نحوه گرفتن بک اپ
- از داخل پنل یا بات یک backup دستی ایجاد نمایید. این در پوشه backups با نام manualbackup.zip ذخیره میشود.
- این فایل از محتویات wg interface و db بک اپ میگیرد .
- در صورت نصب پنل جدید همین فایل را در پوشه backups قرار دهید و توسط بات یا پنل ریستور کنید. گزینه ای با این نام داخل پنل و بات موجود میباشد
- روش دیگر برای بازگردانی بک اپ کاربران باز کردن این فایل zip و کپی کردن محتویات فایل های wg0.conf یا wg1.conf به داخل پوشه etc/wireguard است و پوشه db هم در داخل usr/local/bin/Wireguard-panel/src/db بریزید
- یا میتوانید از کل پنل یک کپی در روی کامپیوتر خود بریزید. بهتر است این روش ها را از قبل تست نمایید تا با نحوه کار آن اشنا شوید
- بعد از بازگردانی بک اپ، باید سرویس پنل(wireguard-panel) و بات را ریست نمایید و تمام اینترفیس ها هم باید یک بار غیر فعال و دوباره فعال بشوند.
- همیشه بک اپ به صورت متداول بگیرید تا در صورت بروز مشکل به راحتی، بگ اپ را برگردانید
سایر توضیحات:
- این پنل توسط من کاملا تست شده است و کار میکند. اگر مشکلی در نصب آن داشتید با مطالعه نحوه ریپورت کردن، ان را در گیت هاب گزارش دهید.
- اگردرخواست رفع باگی یا اضافه کردن feature ای داشتید تنها در قسمت Issues بیان کنید تا در صورت توان، مشکل را حل و درخواستی را اضافه کنم.
- برای لینک کوتاه، پس از کپی کردن ان کمی صبر کنید تا پیام تایید کپی کردن را دریافت کنید.
- در پنل نام کاربر یکسان نسازید چون در backend از هم جداشون نکردم. به موضوع دقت کنید.
- اطمینان حاصل کنید که قبل از نصب پنل، مشکل dns و تایم زون ندارید. سرور ریبیلد شده باشد. اگر مشکل dns داشته باشد ممکن است سرور شما در دریافت اطلاعات کند باشد و همچنین در بات هم مشکلدار خواهد شد. سیستم عامل خود را بررسی کنید.(مطالب را در بالا مطالعه بفرمایید)
- در این پنل از json برای محدودیت حجم و مانیتورینگ استفاه شده است.
- در این پنل امکان جابجایی فایل های پشتیبان از سروری به سرور دیگر امکان پذیر است ( بالا را مطالعه کتید)
- در این پنل تلاش کردم در حد توان از sanitazation و استفاده از مسیر اصلی دستورات استفاده بشود تا جای ممکن از shell injection جلوگیری شود.
- در حال حاضر مسیر های اصلی دستورات برداشته شده است تا بعدا شاید دوباره اضافه کنم
- بعدا بررسی sanitization قبل از subprocess تکمیل خواهد شد که خطاهای bandit هم کم شود
- دقت نمایید برای اینکه پنل و feature های حجم و زمان به درستی کار کند باید سرویس wireguard-panel همیشه بدون مشکل کار کند. بهتر است گهگاهی این سرویس را بررسی کنید. البته در صورت نصب بات، در صورت قطع سرویس به شما notify میشود.
- مدیریت حجم به صورت MiB , GIB
- مدیریت زمان به صورت روز و ماه و ساعت و دقیقه
- نمایش available ips برای اساس ایپی پرایوت انتخابی شما ( تنها 30 تا را به صورت همزمان در پنل نشان میدهد)
- استفاده از Json فایل برای پشتیبانی و مدیریت و مانیتورینگ
- امکان پشتیبان گیری اتوماتیک و دستی و بازگردانی آن
- نمایش اینترفیس وایرگارد و کاربران
- نمایش cpu و disk و ram در صفحه اصلی
- پشتیبانی از زبان فارسی و انگلیسی تنها با یک بار نصب
- دارای اسکریپت نصب
- دارای ربات ادمین برای ساخت و ویرایش کاربر و پشتیبان گیری و سایر موارد به زبان انگلیسی و فارسی ( از داخل پنل نصب میشود)
- دارای وارپ پایه به صورت wgcf و xray (به صورت ازمایشی اضافه شده است)
- امکان تغییر دادن تنظیمات وایرگارد و flask از داخل پنل
- پشتیبانی از tls توسط certbot
- دارای نمایش قالب default برای کاربران و qr code و دانلود کانفیگ
- دارای ریست حجم و زمان و دکمه های فعال یا غیر فعال کردن
- دارای pagination به این صورت که هر 10 کاربر در یک صفحه قرار میگیرد
- دارای نمایش لاگ و ایپی های سرور و سرویس بات و وارپ و غیره
- دارای نمایش notification برنامه در ربات ادمین
- دارای محاسبه زمان پس از اتصال اول
- پشتیبانی بات از چندین admin chat id
- پشتیبانی endpoint از ساب دامین و ایپی
- مشاهده کانفیگ توسط کاربر با لینک کوتاه (به اسکرین شات برای مشاهده template مراجعه کنید)
- امکان ساخت کاربران به صورت دسته ای و گروهی در پنل و بات
- امکان مشاهده لینک کوتاه در پنل و بات
آپدیت
- ربات فارسی و انگلیسی اپدیت شد که منو های compact mode داشته باشد
- اسکریپت اپدیت شد که با فراخوانی wire اجرا شود
- اپدیت app.py برای ریدایرکت صفحه register به لاگین در صورت وجود نام کاربری و گذرواژه ( thanks to opiran for mentioning that)
- اپدیت script-fa.js برای حل مشکل refresh peer list در هنگام فیلتر فعال.
- مشکل بالا نیامدن پنل با اضافه شدن pytz module حل شد
- فغلا مسیر اصلی دستورات را پاک کردم و این موضوع در bandit به عنوان مورد قابل بازبینی در نظر گرفته میشود تا ببینم بعدا چی میشه
- اپدیت اسکریپت : از این به بعد میتوانید توسط دستور اسکریپت چه با download.sh یا wire به اپدیت پنل بپردازید ( به صورت ازمایشی اضافه شده است)
- برای بات : تنها chat admin id دسترسی به بات را خواهد داشت
- برای بات : در قسمت peer creation ، اطلاعات کاربر ساخته شده کامل تر شد و mtu هم به ان اضافه شد
- برای بات : فسمت first usage همان محاسبه زمان پس از اتصال اول میباشد
- برای بات : در قسمت settings مشکل mtu برطرف شد
- اپدیت استفاده از چندین admin chat id اضافه شد. با کاما استفاده نمایید مانند 674565756, 6545675
- اپدیت استفاده از ساب دامین به جای Ip هم اضافه شد
- اپدیت encryption فایل telegram.yaml اضافه شد
- اپدیت برای disable & enable notifications که بر اساس health app.py کار کند
- اپدیت pagination انجام شد که دیگر به صفحه نخست باز نگردد
- بات فارسی مشکل پاک شدنش برطرف شد
- اپدیت keepalive به بات اضافه شد
- اپدیت available ips برای بات اضافه شد. از این به بعد به درستی باید ایپی های موجود را نشان دهد
- اپدیت تایم زون در app.py انجام شد
- مشکلات delete peer در صفحه اصلی حل شد
- اپدیت app.py برای مانیتور ترافیک که پس از ریبوت سرور، حجم های مصرفی ریست نشود
- مشکلات mismatch در json فایل برطرف شد
- مشکل ریست و ویرایش نکردن در برنامه برای اینترفیس های به غیر از دیفالت برطرف شد
- اپدیت برای بات : اضافه شدن اطلاعات اضافی برای دانلود کانفیگ و کد qr
- اپدیت برای اسکریپت که از این به بعد قالب های شما را overwrite نکند . از طریق اسکریپت داخل گیت هاب اپدیت نمایید( پس از اپدیت حتما پنل و بات را ریست نمایید)
- اپدیت بات : ریست حجم و ترافیک باید به درستی کار کند
- اپدیت بات : نمایش محتویات conf فایل در زیر آن
- فعلا به json فایل ها tmp قبل از ذخیره کردن اضافه کردم و برای مانیتور و decrement هم قفل گذاشتم تا ببینم مشکل پاک شدن json فایل حل میشود یا خیر
- اضافه شدن اپدیت برای نمایش ندادن کاربرهای اینترفیس در صورت استفاده از pagination
- اضافه کردن چک باکس فعال در صورت وجود geosites
- به تمام مسیر هایی که فایل json را رایت میکند قفل اضافه کرده ام تا نتیجه اش را ببینم. (ممکن است دستور شما تا اجرا شدنش زمان ببرد. دلیلش قفل میباشد که تا دستور قبلی کامل نشود بعدی اجرا نمیشود)
- اپدیت بلاک کردن کاربر زمانی که منقضی شود. الان باید به درستی بلاک کند.
- برای کاربرها template مشاهده کانفیگشان اضافه شد. در داخل بات پس از ساخت کانفیگ در قسمت دانلود کانفیگ یا qr به عنوان لینک کوتاه کانفیگ قابل مشاهده است. در دانلود کانفیگ و qr هم به صورت جداگانه نشان داده خواهد شد
- مشکلات short link و عدم نمایش ساعت در template برطرف شد
- مشکل محدودیت نمایش کاربر برطرف شد
- اپدیت برای template که به درستی زمان و حجم باقی مانده را نشان دهد
- اپدیت برای pagination انجام شد. انیمشن transition برای کانفیگ وایرگارد و pagination اضافه شد.
- اپدیت برای حذف کردن اضافه شد که اگر در ان صفحه کاربری موجود نبود به صفحه قبل بازگردد. اگر موجود بود در همان صفحه بماند. برای ویرایش کاربر هم به همین صورت میباشد
- اپدیت برای toggle peer اضافه شد که در صورت فعال کردن کاربر، به درستی ترافیک ریست شود یعنی نخست پابلیک کی پاک شود و سپس اضافه شود که در ریست ترافیک به تنهایی انجام میشد اما در toggle peer وجود نداشت
- اپدیت برای پنل و بات که از ساخت دسته جمعی کاربران پشتیبانی کند. مقدار-1 در اخر هر نام کاربر اضافه میشود.
- اپدیت لینک کوتاه در پنل انجام شد که لینک کوتاه ان کاربر در صورت موجود بودن ان، قابل کپی کردن باشد. کمی برای کپی کردن صبر کنید تا پیام تایید در پنل دریافت کنید
- اپدیت برای app.py : ریست ترافیک به دلیل حذف کردن پابلیک کی احتمال حذف کاربران در اینترفیس وایرگارد را به دنبال دارد. برای همین قبل از پاک کردن و جلوگیری از این موضوع , بک کپی گرفته میشود و بعد از ریست ترافیک بازگردانی میشود که تا حد زیادی جلوی این مشل را بگیرد( همیشه بک اپ تهیه نمایید تا بیشتر مشخص شود)
- اپدیت برای بات و پنل : از این به بعد میتوانید به صورت 1.1.1.1, 1.0.0.1 مقدارهای dns را وارد نمایید
- اپدیت برای بات : درست شدن ویرایش کاربر و نمایش حجم در qr & download
برنامه های اینده
- اگر تمام کارهای پنل به درستی پیش برود و مشکل خاصی نباشد بعدا شاید در صورت امکان مشاهده ایپی های کاربران و بستن و باز کردن ان هم به پنل اضافه کنم که در صورت وجود تانل به صورت 127.0.0.1 نشان میداد.
- ممکن است وارپ با xray از پنل حذف شود چون از خود وایرگارد استفاده میکنیم و به wgcf نسخه پلاس اضافه شود
- بعدا ممکن است تغییراتی در template بدهم
- ممکن است لیست با pagination در بات اضافه شود که کاربران خود را در ان اینترفیس مشاهده کنید و حتما نیاز نباشد که نام ان را تایپ کنید
- ممکن است اضافه کردن کاربر به صورت دسته جمعی هم اضافه کنم( اضافه شد)
- پس از بررسی پنل در چندین ماه و اطمینان از کارایی ان در شرایط مختلف در صورتی که مشکلی، درسی یا بیماری نداشته باشم، دوست دارم به این پنل Open vpn هم اضافه کنم
- ایده های دیگر در طول زمان در اینجا اضافه میشود
نصب پنل و بات
- اجرای اسکریپت دانلود
sudo apt update && sudo apt install -y curl && apt install git -y && curl -fsSL -o download.sh https://raw.githubusercontent.com/Azumi67/Wireguard-panel/refs/heads/main/download.sh && bash download.sh
- نخست گزینه ها را به ترتیب نصب میکنید تا به گزینه 4 برسید
- نخست پورت پنل خود را وارد میکنید و سایر موارد را در صورت منابع بهتر در صورت نیاز تغییر میدهید یا به صورت دیفالت به قسمت بعد میروید
- کلید رمز عبور برنامه را وارد نمایید
- در صورت نیاز از tls گزینه yes را وارد نمایید و در صورت نیاز نداشتن به این مورد گزینه No را وارد میکنید و بدون tls استفاده مینمایید
- در صورت وارد کردن yes برای tls، باید ساب دامین و ایمیل خود را وارد نمایید. اطمینان یابید که dns ساب دامین شما به درستی به ایپی سرور شما لینک شده است
- در صورت مشکل نصب، نصب certbot را به صورت دستی انجام دهید و سپس به این مرحله بازگردید
- در صورت استفاده نکردن از tls ادرس داشبورد شما http://publicip:port/home است و در صورت استفاده از tls به صورت https://subdomain:port/home خواهد بود
- قسمت بعدی ست کردن کانفیگ وایرگارد میباشد
- همیشه با wg0 کانفیگ را اغاز کنید و سپس wg1 و wg2
- ایپی پرایوت ورژن 4 باشد و نیازی به ایپی 6 نمیباشد
- پورت و سایر موارد را وارد نمایید.
- در صورت استفاده از فایروال، پورت و رنج پرایوت را باز کنید
- این مورد برای اموزش است و تنها پس از نصب اسکریپت و داخل پنل انجام میشود. دقت نمایید که برای استفاده از ربات به زبان انگلیسی، نخست زبان پنل را انگلیسی کنید و سپس ربات را نصب نمایید. فارسی هم به همین صورت میباشد
- برای نصب بات از داخل پنل میتوانید انجام دهید. همان طور که در اسکرین شات مشاهده میکنید توکن باتی که از @BotFather دریافت کردید قرار دهید
- ادرس صفحه هم بر اساس استفاده از tls یا بدون آن خواهد بود. اگر بدون tls است باید http://publicip:port و در صورت آستفاده از tls باید https://subdomain:port قرار دهید
- قسمت بعدی همان کلید api است که از پنل دریافت کرده اید
- قسمت بعدی هم admin chat id رباتی که داخل botfather ساختید را دریافت میکنید . از طریق @userinfobot میتوانید نام ربات خود را بدهید و این مورد را بدست اوردید.
- برای اضافه کردن چندین admin chat id کافی است به این صورت وارد نمایید 676676767 ,67676767 ( استفاده از کاما مانند مثال)
- لطفا تنها از یک بات استفاده نمایید. یا فارسی یا انگلیسی
- سپس گزینه 6 و 7 اسکریپت را نصب کنید و پنل شما اماده است
- در صفحه اصلی ادرس داشبورد خود را مشاهده میکنید
نصب پنل به صورت دستی
- اجرای دستورات
sudo apt update && sudo apt install git -y
cd /usr/local/bin
sudo git clone https://github.com/Azumi67/Wireguard-panel.git
cd /usr/local/bin/Wireguard-panel
sudo apt install -y python3 python3-pip python3-venv git redis nftables iptables wireguard-tools iproute2 \
fonts-dejavu certbot curl software-properties-common wget
sudo systemctl enable redis-server.service
sudo systemctl start redis-server.service
sudo systemctl status redis-server.service
# creating env
python3 --version
sudo apt update && sudo apt install python3 python3-pip python3-venv
python3 -m venv /usr/local/bin/Wireguard-panel/src/venv
source /usr/local/bin/Wireguard-panel/src/venv/bin/activate
pip install --upgrade pip
pip install python-dotenv python-telegram-bot aiohttp matplotlib qrcode "python-telegram-bot[job-queue]" pyyaml flask-session Flask SQLAlchemy Flask-Limiter Flask-Bcrypt Flask-Caching jsonschema psutil pytz requests pynacl apscheduler redis werkzeug jinja2 fasteners gunicorn pexpect cryptography Pillow arabic-reshaper python-bidi
sudo apt-get install -y libsystemd-dev
deactivate
# permissions
chmod 644 /usr/local/bin/Wireguard-panel/src/config.yaml
chmod -R 600 /usr/local/bin/Wireguard-panel/src/db
chmod -R 700 /usr/local/bin/Wireguard-panel/src/backups
chmod 644 /usr/local/bin/Wireguard-panel/src/telegram/telegram.yaml
chmod 644 /usr/local/bin/Wireguard-panel/src/telegram/config.json
chmod 644 /usr/local/bin/Wireguard-panel/src/install_progress.json
chmod 644 /usr/local/bin/Wireguard-panel/src/api.json
chmod 744 /usr/local/bin/Wireguard-panel/src/install_telegram.sh
chmod 744 /usr/local/bin/Wireguard-panel/src/install_telegram-fa.sh
chmod -R 644 /usr/local/bin/Wireguard-panel/src/static/fonts
chmod -R 644 /usr/local/bin/Wireguard-panel/src/telegram/static/fonts
chmod -R 755 /etc/wireguard
- Flask & gunicorn configuration :
nano /usr/local/bin/Wireguard-panel/src/config.yaml
###
flask:
port: 8443
tls: true
cert_path: "/etc/letsencrypt/live/subdomain.com/fullchain.pem"
key_path: "/etc/letsencrypt/live/subdomain.com/privkey.pem"
secret_key: "azumi"
debug: false
gunicorn:
workers: 2
threads: 1
loglevel: "info"
timeout: 120
accesslog: ""
errorlog: ""
wireguard:
config_dir: "/etc/wireguard"
##
- Wireguard configuration :
nano /etc/wireguard/wg0.conf
##
[Interface]
Address = 166.66.66.1/25
ListenPort = 20821
PrivateKey = aBY+lbhuOlBknLDDi2MbI11LZKEDGOSsvIbWQDuCSX0=
MTU = 1380
DNS = 1.1.1.1
PostUp = iptables -I INPUT -p udp --dport 20821 -j ACCEPT
PostUp = iptables -I FORWARD -i eth0 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 20821 -j ACCEPT
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
##
Commands for generating private & pub key :
wg genkey | tee privatekey
cat privatekey | wg pubkey > publickey
- Wireguard panel service
nano /etc/systemd/system/wireguard-panel.service
##
[Unit]
Description=Wireguard Panel
After=network.target
[Service]
User=root
WorkingDirectory=/usr/local/bin/Wireguard-panel/src
ExecStart=/usr/local/bin/Wireguard-panel/src/venv/bin/python3 /usr/local/bin/Wireguard-panel/src/app.py
Restart=always
Environment=PATH=/usr/local/bin/Wireguard-panel/src/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=LANG=en_US.UTF-8
Environment=LC_ALL=en_US.UTF-8
[Install]
WantedBy=multi-user.target
##
نحوه استفاده از ساخت کاربر به صورت گروهی و نمایش لینک
- برای ساخت کاربر مانند قدیم عمل میکنید ولی در قسمت پایین، تیک اضافه کردن گروهی را میزنید و تعداد کاربر هم میزنید . بیشتر از 50 نباشد. مثلا 10 تا خوبه
- نخست نام کاربر مثلا azumi را میدهید و بعد ایپی پرایوت کاربر را انتخاب کنید و سایر موارد هم مانند قبل انتخاب کنید و تیک اضافه کردن گروهی را بزنید و تعداد کاربر بدهید
- برای نمایش لینک کوتاه هم بر روی لینک کلیک کنید و صبر کنید تا پیام تایید کپی را بگیرید. اگر لینک کوتاه موجود باشد به شما پیام success میدهد
- برای بات هم به همین صورت میباشد
- بر روی bulk کلیک میکنید و تعداد کاربر و نام را میدهید
sudo apt update && sudo apt install -y curl && apt install git -y && curl -fsSL -o download.sh https://raw.githubusercontent.com/Azumi67/Wireguard-panel/refs/heads/main/download.sh && bash download.sh
- باز فراخوانی اسکریپت
chmod +x /usr/local/bin/Wireguard-panel/src/setup.sh
wire