راهاندازی VpnHood! SERVER در Docker
سرور را بهصورت یک کانتینر روی هر سیستم Linux مجهز به Docker اجرا کنید. تنها با یک دستور، چه بهصورت سرور تحت مدیریت و چه مستقل، نصب میشود و کانتینر همیشه سرور را فعال و بهروز نگه میدارد.
پیش از شروع
- یک سیستم Linux با IP عمومی بر پایه معماری x64 یا arm64 (ایمیج برای هر دو معماری ساخته شده است).
- دسترسی Root.
- نرمافزار Docker به همراه پلاگین compose آن. نصاب میتواند در صورت نیاز آن را روی Ubuntu، Debian و توزیعهای مبتنی بر آنها نصب کند.
- باز بودن پورت TCP
443، هم در فایروال سیستم و هم در تنظیمات فایروال ارائهدهنده هاست. کانتینر از شبکه هاست استفاده میکند؛ بنابراین سرور مستقیماً به پورت هاست متصل میشود.
نصب سرور تحت مدیریت
در VpnHood! MANAGER، بخش Servers را باز کنید، Add را انتخاب نمایید، نامی برای سرور بگذارید و روی Create بزنید. در میان روشهای نصب، Install on Linux manually by running a command را انتخاب کنید. در دستوری که MANAGER نمایش میدهد، عبارت VpnHoodServer-linux.sh را به VpnHoodServer.docker.sh تغییر داده و سپس آن را روی سرور اجرا کنید. با این کار کانتینر با تنظیمات اتصال به MANAGER نصب میشود و سؤالی مشابه نصب مستقل در ادامه از شما پرسیده خواهد شد.
برای کانتینری که قبلاً ایجاد کردهاید، گزینه Install Manually by configuring appsettings را انتخاب کنید. تنظیماتی که MANAGER نمایش میدهد را با نام /opt/VpnHoodServer/storage/appsettings.json روی هاست ذخیره کرده و سپس با دستور sudo docker restart VpnHoodServer کانتینر را ریاستارت کنید.
سپس در MANAGER از بخش Access Tokens، کلیدهای دسترسی را برای دستگاههای خود بسازید.
نصب سرور مستقل
این دستور را اجرا کنید. این کار فایل compose را دانلود کرده، کانتینر سرور را اجرا میکند و یک سؤال از شما میپرسد.
sudo su -c "bash <( wget -qO- https://github.com/vpnhood/VpnHood.App.Server/releases/latest/download/VpnHoodServer.docker.sh)"
وقتی پیام Install Docker (y/n)? نمایش داده شد، برای نصب خودکار Docker عبارت y را وارد کنید، یا اگر از قبل روی سیستم نصب است، n را بنویسید.
برای نصب خودکار از طریق اسکریپت و بدون پرسیدن سؤال. اگر Docker قبلاً نصب شده است، -install-docker را بردارید.
sudo su -c "bash <( wget -qO- https://github.com/vpnhood/VpnHood.App.Server/releases/latest/download/VpnHoodServer.docker.sh) -install-docker -q"
سرور تنظیمات، کلیدها و لاگهای خود را در مسیر /opt/VpnHoodServer/storage روی هاست ذخیره میکند تا با تغییر کانتینر همواره حفظ شوند.
ساخت کلید دسترسی
این دستور را روی سیستم اجرا کنید. کلید درون کانتینر سرور ساخته میشود و مستقیماً از تنظیمات خود سرور استفاده میکند.
sudo docker exec VpnHoodServer /app/vhsupervisor gen
برای نمونه، یک کلید برای یک گوشی
sudo docker exec VpnHoodServer /app/vhsupervisor gen -name Phone -maxClient 1
خروجی و گزینهها دقیقاً مانند سرور مستقلی است که بدون Docker نصب شده است: خط زیر --- AccessKey --- را کپی کنید و برای آشنایی با گزینههای محدودسازی کلید، راهنمای ساخت نخستین کلید دسترسی را ببینید.
اتصال
اپلیکیشن VpnHood! CLIENT را روی هر دستگاه نصب کنید، کلید را اضافه نمایید و متصل شوید.
راهاندازی، توقف و بررسی سرور
این کانتینر VpnHoodServer نام دارد. با راهاندازی مجدد سیستم، Docker آن را بهطور خودکار اجرا میکند و در صورت کرش کردن سرور نیز آن را دوباره راهاندازی خواهد کرد.
sudo docker logs VpnHoodServer
sudo docker stop VpnHoodServer
sudo docker start VpnHoodServer
همین لاگ در مسیر /opt/VpnHoodServer/storage/logs/server.log روی سیستم میزبان نیز ذخیره میشود.
تغییر تنظیمات
سرور تنظیمات خود را از /opt/VpnHoodServer/storage/appsettings.json میخواند. فایل را ویرایش کنید و سپس کانتینر را با sudo docker restart VpnHoodServer دوباره راهاندازی نمایید.
اگر امکان ویرایش فایل را ندارید، کل محتوای appsettings.json را در متغیر محیطی VH_APPSETTINGS قرار دهید تا سرور از آن استفاده کند.
راهنماهای تنظیم آدرسهای IP سرور و اتصال از طریق دامنه پرکاربردترین تنظیمات را مرحلهبهمرحله توضیح میدهند.
بهروزرسانیها
سرور درون کانتینر بهطور خودکار بهروزرسانی میشود. هنگام اجرا و سپس هر ۱۲ ساعت نسخههای جدید را بررسی میکند و با نسخه جدید بازنشانی میشود.
برای ثابت ماندن روی یک نسخه، VH_AUTO_UPDATE=0 را در متغیرهای محیطی کانتینر تنظیم کنید.
گاهی انتشار نسخهای جدید به ایمیج تازهتری نیاز دارد. در این حالت سرور روی نسخه فعلی میماند و در لاگ آن Pull the latest image! ثبت میشود. کافی است دستور نصب را دوباره اجرا کنید تا آخرین ایمیج دریافت شده و کانتینر مجدداً با همان تنظیمات و کلیدها ساخته شود.
اگر با نسخه قدیمیتر اسکریپت نصب کردهاید، دستور نصب را دوباره اجرا کنید. این کار سرور را به ایمیج جدید منتقل کرده و کانتینر قدیمی VpnHoodUpdater را حذف میکند.
ساخت دستی کانتینر
اگر کانتینرهای خود را بهصورت دستی مدیریت میکنید، این همان کانتینری است که نصبکننده میسازد. آن را مانند نصبکننده روی شبکه میزبان (host network) اجرا کنید.
sudo docker run -d --name VpnHoodServer --network host --restart always --stop-timeout 30 -v /opt/VpnHoodServer/storage:/app/storage vpnhood/vpnhoodserver
برای ارتقا به ایمیج جدیدتر، vpnhood/vpnhoodserver را pull کرده و کانتینر را دوباره بسازید.