تنظیم آدرسهای IP سرور
کلید دسترسی به اپلیکیشنها نشان میدهد به چه آدرسی متصل شوند. سرور معمولاً این آدرس را بهطور خودکار تشخیص میدهد، اما در سیستمی با چند IP ممکن است لازم باشد آن را دستی تعیین کنید: آدرسی که سرور روی آن آماده دریافت اتصال است و آدرسی که درون کلیدها قرار میگیرد.
سرور چگونه آدرس خود را پیدا میکند؟
بهطور پیشفرض، سرور روی تمام آدرسهای دستگاه و پورت TCP به شماره 443 به اتصالات گوش میدهد.
برای تنظیم کلیدها، سرور آدرس خود را از طریق ترافیک خروجیاش بررسی میکند: از یک سرویس وب میپرسد ترافیک از چه آدرسی ارسال میشود. در سرورهای مدیریتی، VpnHood! MANAGER همین کار را از طریق Automatic Configuration انجام میدهد و نقاط دسترسی سرور را بر اساس آن تنظیم میکند. این قابلیت برای تمام سرورهای جدید فعال است.
این روش در بیشتر سیستمها آدرس درست را پیدا میکند. در این حالتها آدرس را دستی تنظیم کنید:
- سیستم ترافیک خروجی خود را از آدرسی متفاوت با آدرس اتصال کاربران ارسال کند؛ مثلاً هنگام استفاده از IP خروجی مجزا. در این حالت، بررسی خودکار IP خروجی را ثبت میکند.
- دستگاه دارای چند IP عمومی (Public) باشد و بخواهید کلیدها از یک آدرس خاص استفاده کنند.
- بررسی خودکار ناموفق باشد؛ مثلاً به این دلیل که دستگاه به سرویس وب دسترسی ندارد. در این حالت سرور مستقل اجرا نمیشود و در لاگ آن پیام
PublicEndPoints has not been configured properly.ثبت خواهد شد.
در یک سرور مدیریتشده
در VpnHood! MANAGER، بخش Servers را باز کنید، سرور را برگزینید و Access Points آن را پیدا کنید. هر نقطه دسترسی نشاندهنده یک آدرس سرور به همراه پورتهای آن است.
203.0.113.10، درون کلیدها قرار میگیرد. آدرس قدیمی، 198.51.100.20، از آنها حذف میشود، اما سرور همچنان برای اپلیکیشنهایی که کلید قدیمیتر دارند روی آن گوش به زنگ میماند.
برای تنظیم دستی، Automatic Configuration را خاموش کنید: تا زمانی که روشن باشد، فهرست قابل تغییر نیست. MANAGER از شما تأیید میخواهد، زیرا سرور با تنظیمات جدید ریاستارت میشود.
دو تنظیم کاربرد هر آدرس را مشخص میکنند:
- Mode مشخص میکند آدرس در اختیار چه کسانی قرار گیرد. PublicInToken آن را در تمام کلیدهای دسترسی مزرعه سرور قرار میدهد. Public آن را از کلیدها دور نگه میدارد و MANAGER تنها زمانی آن را به اپلیکیشن میدهد که کاربر را به این سرور هدایت کند. Private هرگز آن را به اپلیکیشنها ارائه نمیدهد.
- Listen تعیین میکند که آیا سرور روی این آدرس گوش به زنگ باشد یا خیر. این گزینه را تنها برای آدرسی روی Yes بگذارید که ارائهدهنده شما به دستگاه هدایت میکند: در Linux، سرور آدرسی را که روی سیستم نیست بهطور خودکار به شبکهاش میافزاید.
تنظیمات UDP Port و QUIC Port اختیاری هستند و مقدار -1 هر کدام را غیرفعال میکند.
در سرورهای ابری که دستگاه فقط آدرسهای خصوصی دارد (مانند AWS، Google Cloud، Azure یا Oracle Cloud)، آدرس خصوصی را با Mode روی Private و Listen روی Yes اضافه کنید، و IP عمومی را با PublicInToken و Listen روی No، با همان پورت ثبت نمایید. Automatic Configuration همین روند را خودکار انجام میدهد.
برای بررسی، مزرعه سرور را باز کنید: صفحه آن آدرسهای موجود در کلیدها را در بخش Access Points نشان میدهد.
در سرور مستقل
سرور تنظیمات خود را از فایل /opt/VpnHoodServer/storage/appsettings.json میخواند. پس از نصب تازه این فایل وجود ندارد: کافی است آن را بسازید تا از این پس سرور از این تنظیمات استفاده کند. دو گزینه زیر بخش FileAccessManager آدرسها را مشخص میکنند:
- گزینه
TcpEndPointsآدرسها و پورتهایی را مشخص میکند که سرور روی آنها به اتصالات گوش میدهد. - گزینه
PublicEndPointsآدرسها و پورتهایی را تعیین میکند که در کلیدهای دسترسی قرار میگیرند. فقط از آدرسهای واقعی استفاده کنید: وارد کردن0.0.0.0یا[::]در اینجا مانع راهاندازی سرور میشود.
نمای کامل فایل: سرور روی تمام آدرسها به اتصالات گوش میدهد و 203.0.113.10 را در کلیدها قرار میدهد
{
"FileAccessManager": {
"TcpEndPoints": [ "0.0.0.0:443", "[::]:443" ],
"PublicEndPoints": [ "203.0.113.10:443" ],
"SslCertificatesPassword": null
},
"ServerConfig": {
"LogAnonymizer": true,
"AddListenerIpsToNetwork": "*"
},
"LogLevel": "Information"
}
برای گوش دادن به اتصالات تنها روی یک آدرس مشخص (مانند حالت استفاده از IP خروجی مجزا)، همان آدرس را در TcpEndPoints وارد کنید. در خارج از محیط Docker، اگر این آدرس هنوز روی شبکه دستگاه تعریف نشده باشد، سرور خودبهخود آن را اضافه میکند.
در صورت استفاده از UdpEndPoints یا QuicEndPoints، آدرسی مشابه با TCP برای آنها تعیین کنید.
در سرورهای ابری که دستگاه فقط آدرس خصوصی دارد (مانند AWS ،Google Cloud ،Azure یا Oracle Cloud)، به اتصالات روی آدرس خصوصی یا تمام آدرسها گوش دهید و IP عمومی را در PublicEndPoints وارد کنید.
سپس سرور را با دستور sudo systemctl restart VpnHoodServer (یا در Docker با sudo docker restart VpnHoodServer) ریاستارت کنید. برای بررسی، یک کلید با vhserver gen بسازید: خط HostEndPoints: آدرسهای ثبتشده را نشان میدهد.
کلیدهایی که پیشتر صادر کردهاید
هر کلید حاوی آدرسهایی است که هنگام ساخت در آن ثبت شده، بنابراین اپلیکیشنی با کلید قدیمیتر به تلاش برای اتصال به آدرس قبلی ادامه میدهد. هر اپلیکیشن هنگام اتصال، کلید فعلی را خودبهخود دریافت میکند؛ بنابراین پس از تغییر، سرور را چند روز روی آدرس قدیمی فعال نگه دارید و سپس آن را حذف کنید.
در یک سرور مدیریتشده، آن را به عنوان یک نقطه دسترسی با Mode روی Private و Listen روی Yes نگه دارید: اپلیکیشنها کلید جدید را دریافت میکنند زیرا Push token to clients بهطور پیشفرض فعال است. در سرور مستقل، آدرس قدیمی را فقط در TcpEndPoints نگه دارید.
اپلیکیشنی که دیگر به آدرس قدیمی دسترسی ندارد، به کلید جدیدی از سوی شما نیاز خواهد داشت. با داشتن یک نام دامنه و گواهی معتبر، کلیدها آدرس جدید را از طریق DNS پیدا میکنند و تغییر آدرس اتصالات را قطع نمیکند.