میزبانی وب یا VPS: آیا طرح شما میتواند یک سرور VPN اجرا کند؟
میزبانی اشتراکی، یک برنامه مدیریتشده و یک سرور خودمدیریتی کنترل شبکه متفاوتی میدهند. پیش از خرید یا مهاجرت هر چیزی، چهار توانایی را مقایسه کنید.
یک وبسایت کارآمد نشان میدهد که ارائهدهنده میتواند HTTP را سرو کند، نه اینکه شما یک ماشین را کنترل میکنید. میان یک طرح اشتراکی، یک برنامه مدیریتشده و یک سرور خودمدیریتی شکاف بزرگی در آنچه حساب میتواند با شبکه بکند وجود دارد. پیش از پرداخت برای یک سال دیگر تصمیم بگیرید طراحی VPN شما به کدام سمت این شکاف نیاز دارد. چهار توانایی این دو را جدا میکند و هیچکدام در فهرست قیمت دیده نمیشود.
هر طرح در عمل چه میدهد
مقایسه مفید نه قیمت است و نه حجم دیسک، بلکه اختیار. بپرسید حساب چه چیزی میتواند اجرا کند، به کدام قابلیتهای هسته دسترسی دارد، کدام درگاهها ترافیک ورودی را میپذیرند و آیا ترافیک پذیرفتهشده میتواند دوباره به جای دیگری برود.
بیشتر محصولات میزبانی در سه شکل میگنجند و تنها شکل آخر یک سرور همهکاره است:
| Capability | Website plan | Self-managed server |
|---|---|---|
| Long-running custom process | Usually not permitted | Yours to run under a service manager |
| Virtual network interface | Almost never available | Present when the kernel module and privilege allow it |
| Arbitrary inbound port | Restricted to the web stack | Provider filtering still applies |
| Forwarding for clients | Not offered | Possible once routing and policy are configured |
حساب شل منبع معمول سردرگمی است. انتقال فایل یا دسترسی به کارهای زمانبندیشده میتواند شبیه مدیریت به نظر برسد، در حالی که فرایند به یک پوشه و مجموعه کوچکی از عملیات مجاز محدود است.
چهار توانایی که پاسخ را تعیین میکند
آنها را به ترتیب بگیرید، زیرا شکست در گام نخست بقیه را بیاهمیت میکند.
نخست، نرمافزار باید بهعنوان فرایندی دیرپا اجرا شود که از تعمیر و نگهداری جان سالم به در ببرد. دوم، پیادهسازی باید بتواند رابط مجازی خود را بسازد؛ روی Linux این معمولاً یعنی باز کردن /dev/net/tun با مجوز مدیریتی مربوط، همانطور که مستندات TUN/TAP هسته توضیح میدهد، هرچند هر طراحی VPN از آن دستگاه استفاده نمیکند. سوم، کلاینتها باید شنونده را روی نشانی عمومی برسند، از طریق انتقال و درگاهی که در نظر دارید، و یک پراکسی معکوس وب که HTTPS را میپذیرد هیچ چیزی درباره یک پروتکل نامرتبط روی همان شماره نمیگوید. چهارم، ترافیک پذیرفتهشده باید بتواند ادامه یابد، با مسیرها، ارسال به جلو و هر ترجمهای که واقعاً پشتیبانی میشود.
شرایط سرویس در کنار آن چهار مورد مینشیند و اصلاً فنی نیست. سقفهای ترافیک نامحدود معمولاً درخواستهای وب را توصیف میکنند، نه تونلی را که دانلود دیگران را حمل میکند. پیش از طراحی بر پایهٔ آن، بخش استفادهٔ قابلقبول را بخوانید و دسترسی بازیابی را برای روزی که سرویس راه نمیافتد در نظر داشته باشید.
کجا حساب وبسایت کوتاه میآید
طرح وبسایت معمولاً کد شما را درون یک محیط اجرای مدیریتشده با نقطهٔ ورود ثابت اجرا میکند. حتی وقتی یک فایل دودویی تونل وجود دارد، ممکن است فرایند مجوز باز کردن گرهٔ دستگاه، گرفتن درگاه ممتاز یا تغییر جدول مسیریابی را نداشته باشد. این محدودیتها خودِ محصولاند، نه یک غفلت.
به همین دلیل افزونهای که وعدهٔ VPN میدهد معمولاً پراکسی به جای دیگری از آب درمیآید. اگر حساب فعلی فقط کنترلهای وبسایت را ارائه میدهد، گام صادقانه یک سرور جداگانه است، نه جستوجوی ماژولی که اختیار مفقود را باز میکند.
وقتی یک میزبان باید هر دو را اجرا کند
اشتراک ممکن است و گاهی معقول، اما آن را تصمیمی امنیتی بدانید نه یک راحتی. یک برنامهٔ وب با فرم بارگذاری در کنار اعتبارنامههای تونل و یک سوکت کنترل مینشیند و یک آسیبپذیری در یکی به دیگری میرسد. حسابهای جداگانه، واحدهای سرویس جداگانه و فایلسیستمهای جداگانه آن قرار گرفتن در معرض را بدون خرید ماشین دوم کم میکنند.
رقابت بر سر منابع هم به همان اندازه مهم است. یک نسخهٔ پشتیبان از طریق تونل و یک فرایند وب مشغول بر سر همان پیوند بالاسری و همان دیسک رقابت میکنند، و خرابی شبیه یک سایت کند به نظر میرسد نه یک تونل اشباعشده. پیش از حادثه تصمیم بگیرید کدام بار کاری برنده است، و تونل را محدود کنید تا وبسایت پاسخدادن را ادامه دهد.
هیچیک از این دو چیدمان فقط به این دلیل که هر دو سرویس اجرا میشوند جدا نیست. توانایی میزبانی هر دو با هم آغاز طراحی است، و کار جداسازی چیزی است که آن را قابل دفاع میکند.
آن را روی یک میزبان آزمایشی با چهار فرمان روشن کنید
پیش از مهاجرت، کوچکترین نمونهٔ محصول هدف را برای یک ساعت اجاره کنید و چهار توانایی را مستقیم بیازمایید. حدس زدن از روی جدول ویژگیها پول کمتری از یک سال با طرح اشتباه هدر میدهد، اما زمان بسیار بیشتری.
اینها را روی میزبان آزمایشی اجرا کنید و شکستها را پاسخ بخوانید، نه مانع:
ls -l /dev/net/tun
sudo ip tuntap add dev tun9 mode tun && sudo ip link del tun9
sysctl net.ipv4.ip_forward
ss -lunp | headدو خط نخست میگویند آیا دستگاه تونل اصلاً میتواند وجود داشته باشد. خط سوم گزارش میدهد آیا میزبان میتواند بستهها را ارسال کند، و خط چهارم نشان میدهد چه چیزی از قبل گوش میدهد تا تعارض درگاه زود گرفته شود. ارائهدهندهای که در خط دوم شکست میخورد ممکن است هنوز پیادهسازی در فضای کاربر را پشتیبانی کند، پس هنگام پرسیدن از پشتیبانی، مکانیزمی را که نیاز دارید نام ببرید نه دستهٔ محصول را.