کاری که یک VPN واقعاً انجام میدهد — و جملهای که بیشتر توضیحها از قلم میاندازند
یک VPN ترافیک شما را رمزنگاری میکند و آن را به یک سرور میفرستد، که رمزگشاییاش میکند و به مسیرش ادامه میدهد. پیامد این کار این نیست که ترافیک شما نامرئی میشود. پیامدش این است که مجموعه افرادی که میتوانند آن را ببینند تغییر میکند. پیش از آن: وایفای کافه، هتل، اپراتور موبایل، ISP خانهتان، و هر middlebox ملیای که بالای همه اینها نشسته — همه آنها میبینند به کدام سایتها میروید و تقریباً چقدر آنجا کار میکنید. پس از آن: آنها فقط یک جریان رمزنگاریشده و دیرپا به یک آدرس میبینند، و هیچچیز درباره آنچه داخلش است. در ازایش، شبکهای که سرورتان رویش نشسته حالا همان جایگاهی را اشغال میکند که آنها رهایش کردند.
این کل مکانیزم است، و ارزشش را دارد که رک دربارهاش حرف بزنیم، چون نسخه بازاریابیاش — «آنلاین نامرئی باشید» — مردم را وادار میکند انتظار حفاظتی را داشته باشند که این طراحی اصلاً ارائه نمیدهد. یک VPN تغییر نقطه دید است. اینکه کمک میکند یا نه، کاملاً به این بستگی دارد که آیا نقطه دید جدید برای همان چیز مشخصی که نگرانش هستید بهتر از قبلی است یا نه. جابهجا کردن ناظر از یک شبکه هتلی که هرگز اسمش را نشنیدهاید به یک دیتاسنتری که خودتان انتخاب کردهاید، در کشوری که خودتان انتخاب کردهاید، با نرمافزاری که خودتان پیکربندی کردهاید، معمولاً معامله بسیار خوبی است. جابهجا کردنش از ISP خانهتان به شرکتی که در پادکستها تبلیغ میکند، معامله دیگری است، و کمتر بدیهی.
خودمیزبانی فقط نیمه دوم آن جمله را عوض میکند و نه چیز دیگری. رمزنگاری یکسان است — مقاله طراحی WireGuard همان دستدهی را توصیف میکند، چه peer مال خودتان باشد چه مال یک ارائهدهنده. آنچه تغییر میکند این است که کلید خصوصی در انتهای دیگر دست کیست، چه کسی اگر میخواست میتوانست لاگ بگیرد، پایگاهداده مشتریان چه کسی وجود دارد، و چه کسان دیگری آدرس خروجی شما را به اشتراک میگذارند. این چهار تفاوت، کل استدلال موافق و مخالف اجرای نسخه شخصیتان است، و همه آنها یکسو اشاره نمیکنند.
خروجی خودتان یا یک خروجی تجاری: معاملهای که واقعاً دارید انجام میدهید
غریزه این است که خودمیزبانی را دقیقاً گزینه خصوصیتر در نظر بگیریم، و برای بیشتر مدلهای تهدید همینطور هم هست. هیچ ارائهدهندهای رکورد حساب نگه نمیدارد، هیچ زیرساخت مشترکی نیست که بهخاطر حساب یک نفر دیگر توقیف شود، هیچ سیاست حریم خصوصیای نیست که باید کورکورانه باورش کنید، و هیچ امکانی برای تغییر بیخبر در سیاست لاگگیری وجود ندارد. کلید دست خودتان است. لازم نیست به کسی اعتماد کنید، چون کسی در موقعیتی نیست که بتواند به شما خیانت کند.
اما یک بُعد هست که یک VPN تجاری در آن قاطعانه برنده میشود، و بُعد کوچکی هم نیست. آدرس خروجی آنها را صدها یا هزاران نفر همزمان به اشتراک میگذارند، پس وبسایتی که یک درخواست از آن میبیند تقریباً هیچچیز درباره اینکه کدامیک از آن افراد آن را فرستاده نمیفهمد. آدرس خروجی شما را فقط خودتان به اشتراک میگذارید. این آدرس ثابت است، متعلق به یک مشتری است، و هر سایتی که از طریق آن بازدید میکنید همان شناسه را میبیند — دقیقاً مثل یک آدرس IP خانگی، فقط در کشوری دیگر. اگر میخواهید در جمعیت گم شوید، جمعیتِ یکنفره به کارتان نمیآید.
| بُعد | VPS خودتان | VPN تجاری | برنده کدام است |
|---|---|---|---|
| چه کس دیگری از IP خروجی شما استفاده میکند | هیچکس — فقط مال خودتان است | صدها تا هزاران نفر، دائماً در حال چرخش | تجاری، بهوضوح |
| چه کسی میتواند از ترافیک شما لاگ بگیرد | خودتان، و فقط اگر پیکربندیاش کنید | ارائهدهنده، طبق سیاستی که نمیتوانید تأییدش کنید | خودمیزبان |
| اعتماد لازم | هیچ — کلید خصوصی دست خودتان است | کامل، فقط با ممیزیهای شخص ثالث تخفیفیافته | خودمیزبان |
| یک درخواست به اپراتور چه چیزی بهدست میدهد | هرچه هاست شما درباره حسابتان نگه داشته | یک حساب، یک ردپای پرداخت، متادیتای نشست | بستگی دارد هرکدام را چطور خریدهاید |
| هزینه در ماه | $8.50 برای یک سرور کامل، هر تعداد دستگاه | $5 تا $13 برای هر اشتراک، با سقف تعداد دستگاه | خودمیزبان از یک دستگاه به بالا |
| انتخاب کشور خروجی | فقط یکی، همانی که در آن مستقر شدهاید | دهها کشور، با یک کلیک قابل تغییر | تجاری |
| سرویسهای استریم و قفلشده بر اساس موقعیت جغرافیایی | بهعنوان IP دیتاسنتر مسدود میشود | بهعنوان محدوده شناختهشده VPN مسدود میشود | راستش را بخواهید، هیچکدام |
| دوام آوردن در برابر یک فایروال ملی | آدرس شما ناشناخته و فهرستنشده است | محدودههای ارائهدهنده شمارش و مسدود میشوند | خودمیزبان، بهطور قاطع |
آن جدول را دو سؤال متفاوت بخوانید، نه یک امتیاز واحد. اگر مهاجم شما شبکهای است که رویش نشستهاید — یک ISP که داده مرور میفروشد، محل کاری که TLS را بازرسی میکند، یک کافه، یک هتل، یک فایروال سانسورگر — خودمیزبانی در هر خطی که اهمیت دارد برنده میشود، چون چیزی که از آن پنهان میشوید بالادست تونل است و نمیتواند از داخلش ببیند. اگر مهاجم شما سایتی است که بازدیدش میکنید، که سعی دارد نشست امروز را به نشست ماه پیش پیوند بزند، آنوقت این جمعیت است که محافظت میکند و یک خروجی خصوصی از بیفایده هم بدتر است. تعداد کمی از مردم واقعاً در موقعیت دوم هستند، و بیشترشان بهتر است بهجای VPN درباره Tor بخوانند.
دلیل اینکه مردم این دو را با هم قاطی میکنند این است که این صنعت یک محصول را زیر هر دو توصیف میفروشد. تنها ادعای واقعی و قابلدفاع یک VPN تجاری همان جمعیت است. هرچیز دیگری در تبلیغش — وعده بدونلاگ، ممیزیها، حوزه قضایی ثبت شرکت — تلاشی است برای جبران این واقعیت که دارید ترافیکتان را دست یک شرکت میسپارید. خودمیزبانی آن شرکت را حذف میکند. اما نمیتواند جمعیت بسازد.
وقتی خودمیزبانی پاسخ درست است
روشنترین مورد، شبکهای است که نه کنترلش میکنید و نه میتوانید بهش اعتماد کنید. وایفای کنفرانس، هتلها، فرودگاهها، اتصال مشترک صاحبخانه، رومینگ موبایل در کشوری با رژیم شنود قانونی تهاجمی. در همه این موارد، تهدید محلی و منفعل است، و یک تونل به هر جای دیگری کاملاً حذفش میکند. اینکه این کمزرقوبرقترین کاربرد است، آن را کمارزشترین نمیکند — این همان کاربردی است که تقریباً برای همه، تقریباً هر هفته صدق میکند.
دومی حوزه قضایی است. تونلی که در زوریخ خروجی دارد یعنی ترافیکی که از آن خارج میشود تحت قانون سوئیس اداره میشود، توسط یک ارائهدهنده ترانزیت سوئیسی حمل میشود، و بیرون از دسترس هر رژیمی است که اتصال خودتان را اداره میکند. این برای مردم کشورهایی که ISP موظف است سوابق مرور را نگه دارد و تحویل دهد، یک انتزاع نیست. انتخاب عامدانه کشور خروجی یکی از معدود تصمیمهای حریم خصوصی با اثری پاک و خواناست، و پیش از استقرار — نه بعدش — ارزش دارد مقایسه حوزههای قضایی را بخوانید.
سومی سانسور است. فایروالهای ملی، VPNهای تجاری را با شمارش محدوده آدرسهایشان مسدود میکنند، که کار آسانی است چون آن محدودهها منتشر، فروخته و بهشدت پراستفادهاند. یک آدرس VPS بهتنهایی در یک شبکه میزبانی، روی هیچ فهرستی از این دست نیست — نه بهخاطر زیرکی، بلکه چون هیچکس دلیلی نداشته که آن را ثبت کند. به همین دلیل است که قابلاعتمادترین راههای دور زدن سانسور همیشه کوچک و شخصی بودهاند تا بزرگ و تجاری، و این تنها جایی است که جمعیت عملاً یک نقطهضعف است.
چهارمی این است که برای چیزی غیر از مرور، یک خروجی پایدار، تمیز و قابلکنترل میخواهید: رسیدن به یک home lab از بیرون، دادن دسترسی به سرویسهای داخلی به یک تیم کوچک بدون افشای آنها، اجرای سرویسی که به یک آدرس مبدأ قابلپیشبینی نیاز دارد، یا نگهداشتن یک نشست دیرپا روی آدرسی که زیر پایتان عوض نشود. اینها مسائل مهندسی شبکهای هستند که یک VPN تجاری اصلاً نمیتواند حلشان کند، و یک VPS با $8.50 آنها را در یک بعدازظهر حل میکند. صفحه بار کاری VPN جزئیات اندازهگیری و شبکه را پوشش میدهد.
و اما استدلال مخالف: اگر نمیتوانید یک سرور را patchشده نگه دارید، اصلاً اجرایش نکنید. یک VPS نگهدارینشده با یک پورت SSH باز، نتیجهای بدتر از هر VPN تجاری برای حریم خصوصی دارد، چون یک خروجی هکشده همهچیز را میبیند و به کس دیگری پاسخگو است. خودمیزبانی یک مشکل اعتماد را با یک مشکل عملیاتی معاوضه میکند. این معامله فقط وقتی خوب است که واقعاً آن عملیات را انجام دهید، که بخش آخر همین راهنما آن را به حدود ده دقیقه در ماه کاهش میدهد.
WireGuard در ده دقیقه: کل پیکربندی
WireGuard آنقدر کوچک است که میشود کل کدش را خواند. داخل هسته لینوکس زندگی میکند، فقط با یک پورت UDP صحبت میکند، از یک مجموعه ثابت از عناصر پایه مدرن بدون هیچ مذاکرهای استفاده میکند، و کل سطح پیکربندیاش دو نوع بلوک است: یک [Interface] که این دستگاه را توصیف میکند، و یک [Peer] به ازای هر دستگاهی که اجازه اتصال دارد. نه هیچ certificate authorityای هست، نه cipher suiteای برای بد انتخاب کردن، و نه daemonای برای تنظیم کردن. همین مینیمالیسم دلیل این است که پیکربندی اشتباهش بهشکل خطرناک سخت است، و همین دلیل این است که تقریباً همهجا جایگزین بدیلهایش شده.
با نصب پکیج و تولید یک جفتکلید شروع کنید. ابتدا umask 077 را تنظیم کنید تا کلید خصوصی بهشکل قابلخواندن برای همه نوشته نشود — اگر اینطور باشد wg-quick با صدای بلند شکایت میکند، و حق هم دارد. wg genkey کلید خصوصی را تولید میکند، wg pubkey نیمه عمومی را از آن استخراج میکند. همین کار را روی هر کلاینت هم انجام دهید. کلیدهای عمومی مبادله میشوند؛ کلیدهای خصوصی هرگز از روی دستگاهی که تولیدشان کرده خارج نمیشوند.
سپس /etc/wireguard/wg0.conf را بنویسید. جدول زیر، فایل کامل یک سرور کارآمد است — چیزی برای اختصار حذف نشده.
| دستورالعمل | چهکاری انجام میدهد | اگر اشتباه تنظیمش کنید چه خرابکاری میشود |
|---|---|---|
[Interface] | بلوکی را باز میکند که این سرور را توصیف میکند | — |
Address = 10.66.66.1/24, fd42:42:42::1/64 | آدرس سرور درون تونل، برای هر دو خانواده | حذف خط v6 یعنی کلاینتها هیچ v6 داخل تونل ندارند و ممکن است از v6 واقعیشان بیرون تونل استفاده کنند |
ListenPort = 51820 | تنها پورت UDPای که سرور رویش پاسخ میدهد | اگر یک فایروال بالادست مسدودش کند هیچ اتصالی برقرار نمیشود؛ هیچ fallback به TCP وجود ندارد |
PrivateKey = <server.key> | کلید خصوصی سرور، مستقیماً درون فایل چسباندهشده | فایل برای همه قابلخواندن میشود و wg-quick از اجرا شدن سر باز میزند |
PostUp = ...masquerade... | NAT مبدأ را نصب میکند تا بستههای تونل بتوانند از طریق رابط عمومی خارج شوند | بدون آن، بستهها به سرور میرسند و دور انداخته میشوند — تونل وصل میشود اما هیچچیز بارگذاری نمیشود |
PostDown = ...delete... | وقتی رابط پایین میآید، همان قاعده را حذف میکند | قواعد NAT کهنه در طول ریستارتهای مکرر انباشته میشوند |
[Peer] | بلوکی را برای یک دستگاه کلاینت باز میکند | — |
PublicKey = <client.pub> | آن دستگاه را شناسایی و احراز هویت میکند | کل مدل کنترل دسترسی همین است — کلید همان حساب است |
AllowedIPs = 10.66.66.2/32, fd42:42:42::2/128 | روی سرور، آدرسهایی که این peer مجاز است استفاده کند | خیلی گسترده باشد یک کلاینت میتواند جای دیگری را جا بزند؛ روی کلاینت معنایی کاملاً متفاوت دارد |
دو چیز هم بیرون از این فایل باید درست باشند. هسته باید حاضر به forward کردن باشد: net.ipv4.ip_forward=1 و net.ipv6.conf.all.forwarding=1 را تنظیم کنید، و آنها را در /etc/sysctl.d/ بنویسید تا از یک ریبوت جان سالم به در ببرند. و قاعده NAT در PostUp باید نام رابط عمومی واقعی را ببرد — روی بیشتر imageهای کلاود این eth0 است، اما بهجای فرض کردن، با ip route get 1.1.1.1 بررسی کنید. یک نام رابط اشتباه، تکتکترین دلیل رایج این است که یک راهاندازی اولیه WireGuard وصل میشود اما سپس به هیچجا نمیرسد.
آن را با wg-quick up wg0 بالا بیاورید، با wg show تأیید کنید که رابط وجود دارد و peerهایتان را فهرست میکند، سپس systemctl enable --now wg-quick@wg0 را اجرا کنید تا پس از یک ریبوت برگردد. در سمت کلاینت، فایل تقریباً یکسان است، با سه تفاوت مهم: AllowedIPs تبدیل میشود به 0.0.0.0/0, ::/0 — یعنی همهچیز را از اینجا مسیر بده بهجای این مبداها را بپذیر — یک خط Endpoint به آدرس عمومی و پورت سرور اشاره میکند، و PersistentKeepalive = 25 نگاشت را در برابر روترهای خانگیای که وگرنه آن را timeout میکنند زنده نگه میدارد. برای گوشیها، پیکربندی کلاینت را از qrencode -t ansiutf8 عبور دهید و آن را از ترمینال اسکن کنید. فایلهای پیکربندی را از طریق یک اپ پیامرسان نفرستید؛ کلید خصوصی داخلش است.
چهار نشتی که دور تونل میزنند
تونلی که ترافیک را حمل میکند با تونلی که همه ترافیک را حمل میکند یکی نیست، و شکاف میان این دو جایی است که هر شکست واقعی VPN در آن زندگی میکند. هرکدام از چهار مورد زیر حالتی است که تونل کاملاً درست کار میکند اما ترافیک شما دورش میزند، و هیچکدامشان خودشان را اعلام نمیکنند. باید خودتان دنبالشان بگردید.
DNS. اگر کلاینت همچنان از هر resolverای که شبکه محلی به آن داده استفاده کند، تونل ترافیک شما را حمل میکند در حالی که سرور DHCP کافه همچنان یک فید زنده از هر دامنهای که جستوجو میکنید دریافت میکند. فقط نام دامنهها بهتنهایی تقریباً کل تصویر را میسازد. با گذاشتن یک خط صریح DNS = در پیکربندی کلاینت درستش کنید، یا بهتر، یک resolver روی VPS اجرا کنید که به آدرس تونل مقید باشد و کلاینتها را به آن اشاره دهید — آنوقت جستوجوها هم از تونل عبور میکنند و روی ماشینی که خودتان مالکش هستید تمام میشوند. از سمت کلاینت تأیید کنید، نه از سمت سرور، با هر تست نشت DNSای؛ باید دقیقاً یک resolver ببینید و آن باید مال خودتان باشد.
IPv6. شکست خاموش کلاسیک. اگر AllowedIPs روی کلاینت فقط 0.0.0.0/0 باشد، به سیستمعامل گفتهاید IPv4 را از تونل مسیر بده و درباره IPv6 هیچ نگفتهاید. روی یک شبکه dual-stack — که این روزها یعنی بیشتر شبکههای خانگی و موبایل — هر سایتی که رکورد AAAA دارد از طریق آدرس واقعیتان، بیرون از تونل، به آن دسترسی پیدا میکنید، در حالی که یک تست نشت که فقط v4 را بررسی میکند میگوید همهچیز روبهراه است. یا ::/0 را اضافه کنید و آدرسهای v6 را داخل تونل توزیع کنید، یا IPv6 را روی کلاینت کاملاً غیرفعال کنید. هیچکدام را انجام ندادن همان پیشفرض است، و آن پیشفرض خراب است.
نبودِ kill switch. وقتی تونل قطع میشود — لپتاپ به حالت suspend میرود، موبایل بین دکلها جابهجا میشود، سرور برای یک بهروزرسانی هسته ریبوت میشود — سیستمعامل کار «کمککنندهاش» را میکند و به شبکه محلی برمیگردد. ترافیکی که فکر میکردید تونل شده، نیست، و هیچچیز به شما خبر نمیدهد. روی لینوکس، wg-quick با جدول مسیریابی پیشفرض از قبل برای بیشتر ترافیک fail-closed است، اما راهحل قابلاعتماد یک قاعده فایروال صریح است که هرچه از راه wg0 خارج نمیشود را دور بیندازد. روی Android و iOS، Always-on VPN و Block connections without VPN را روشن کنید. روی کلاینتهای دسکتاپ، پیش از فرض کردنِ وجود این تنظیم، بررسی کنید که واقعاً وجود دارد یا نه.
MTU. این یک نشت حریم خصوصی نیست، بلکه دلیلی است که مردم کار را رها میکنند. کپسولهسازی WireGuard برای IPv4 60 بایت و برای IPv6 80 بایت هزینه دارد، پس MTU پیشفرض رابط یعنی 1420 داخل یک مسیر معمولی 1500 بایتی جا میشود. روی PPPoE، برخی شبکههای موبایل، یا یک تونل دوم، مسیر واقعی کوچکتر است، و علامتش عجیب است: پینگ کار میکند، صفحات کوچک بارگذاری میشوند، اما دستدهیهای بزرگ TLS تا ابد معلق میمانند. اگر این دقیقاً همان چیزی است که میبینید، MTU کلاینت را به 1380 یا 1280 کاهش دهید و بهسادگی شروع به کار خواهد کرد.
| بررسی | چطور تأییدش کنید | قبولی چه شکلی است |
|---|---|---|
| خروجی IPv4 | آدرس عمومیتان را از هر سرویس echoای بگیرید | آدرس سرور، نه آدرس خودتان |
| خروجی IPv6 | دوباره صراحتاً از طریق IPv6 بگیریدش | آدرس v6 سرور — یا اصلاً هیچ مسیر v6ای |
| DNS | هر تست نشت DNSای، اجراشده از کلاینت | یک resolver، همانی که خودتان تنظیم کردهاید |
| Fail-closed | تونل را متوقف کنید و یک صفحه را دوباره بارگذاری کنید | صفحه شکست میخورد؛ بیسروصدا بارگذاری نمیشود |
| MTU | یک صفحه بزرگ را روی TLS، در بدترین شبکهای که استفاده میکنید بارگذاری کنید | بهجای معلق ماندن، کامل میشود |
| تازگی دستدهی | wg show روی سرور | یک دستدهی اخیر برای هر peerای که انتظارش را دارید |
یک چیز هست که یک VPN نمیتواند حلش کند، و ارزش دارد گفته شود تا انتظارش را نداشته باشید: ناظری که میتواند هر دو انتها را همزمان زیر نظر بگیرد، میتواند آنها را از روی زمانبندی و حجم به هم مرتبط کند، تونل باشد یا نباشد. رمزنگاری محتوا را پنهان میکند، نه شکل یک مکالمه را. دفاع در برابر آن مهاجم نیازمند مخلوط کردن ترافیک شما با ترافیک آدمهای دیگر روی چندین رله است، که دقیقاً کاری است که Tor برایش ساخته شده و یک VPN تکجهشی از نظر ساختاری نیست. اگر مدل تهدید شما این است، یک VPN خودمیزبان ابزار اشتباهی است و هیچ پیکربندیای آن را درست نمیکند.
واداشتن آدرس خروجی به رفتار درست در دنیای واقعی
آدرسی که تونل شما از آن خارج میشود متعلق به یک شبکه میزبانی است، و بخش بزرگی از وب امروز پیش از تصمیمگیری درباره اینکه چطور با شما رفتار کند، آدرسها را به مسکونی و دیتاسنتر دستهبندی میکند. کاتالوگهای استریم، برخی بانکها، سایتهای بلیتفروشی و بخش زیادی از ابزارهای ضدتقلب، هرچیزی از یک شبکه میزبانی را بهطور پیشفرض مشکوک تلقی میکنند. این چیزی نیست که با یک تغییر پیکربندی درست شود — این یک ویژگی مربوط به محل زندگی سرور است، و بهطور یکسان هم شامل یک تونل خودمیزبان میشود هم شامل هر VPN تجاری در بازار. هرکس خلاف این را وعده میدهد، دارد بازی گربهوموشی را توصیف میکند که همین الان دارد در آن میبازد.
چیزی که واقعاً فرق میکند این است که آدرس شما روی کدام فهرستها ظاهر میشود. محدودههای VPN تجاری دقیقاً به این خاطر که بزرگ، ثابت و مشترکاند شمارش، منتشر و بهعنوان فید فروخته میشوند؛ سایتی که میخواهد VPNها را مسدود کند آن فهرست را میخرد. یک آدرس تکی در یک شبکه میزبانی عمومی روی آن فهرست نیست. در عمل این یعنی خروجیهای خودمیزبان از بخش شگفتآوری از وب معمولی که ارائهدهندگان تجاری را کاملاً مسدود میکند بیدردسر رد میشوند، در حالی که همچنان در سرویسهای خاصی که تمام ترافیک دیتاسنتر را مسدود میکنند به دیوار میخورند. انتظار یک CAPTCHA اضافه گاهبهگاه را داشته باشید و بس.
چند کار هست که ارزش دارد یکبار برای همیشه انجام دهید. یک رکورد DNS معکوس ساده و بیادعا روی آدرس تنظیم کنید بهجای اینکه پیشفرض ارائهدهنده را نگه دارید — بسیاری از سیستمهای اعتبارسنجی، PTR را میخوانند، و یک hostname عمومی امتیاز بهتری میگیرد تا چیزی که شبیه زیرساخت به نظر برسد. تونل را کاملاً از پورت 25 دور نگه دارید؛ ایمیل خروجی از یک آدرس میزبانی تازه، صرفنظر از هر کاری که بکنید در پوشه اسپم فرود میآید، و مشکل تحویلپذیری پروژه چندهفتهای مستقل خودش را دارد. و اگر آدرس واقعاً مسموم شد — به ارث رسیده از مستأجر قبلی، یا از کاری که یکی از peerهای خودتان کرده — بهجای جنگیدن با آن، درخواست re-IP بدهید. مشتریان را بهصورت رایگان به یک آدرس تازه در همان prefix منتقل میکنیم؛ یک تیکت پنل باز کنید و ظرف یک روز انجام میشود.
آخرین ملاحظه این است که چه کسان دیگری پشت تونل شما هستند. چون هر peer یک آدرس خروجی مشترک را به اشتراک میگذارد، رفتار یک نفر به اعتبار همه تبدیل میشود. یک خانواده مشکلی ندارد. یک گروه بیستنفره از آشناهایی که نمیدانید نیمیشان دارند چهکار میکنند، دقیقاً همانطوری است که یک آدرس تمیز به یک آدرس مسدودشده تبدیل میشود، و یک گزارش سوءاستفاده با نام حساب شما رویش میرسد. اگر دارید به کسانی فراتر از افرادی که برایشان ضمانت میکنید peer میدهید، در عوض یک instance مستقل به آنها بدهید — با $8.50 در ماه، این پاسخ ارزانتری از جایگزینش است.
لایهای که هیچکس پیکربندیاش نمیکند: اینکه چطور پول سرور را دادهاید
این همان شکستی است که همه چیز بالا را خنثی میکند، و هیچ ربطی به WireGuard ندارد. ترافیک از آدرس خروجی شما خارج میشود. آن آدرس متعلق به یک سرور است. سرور متعلق به یک حساب است. حساب با یک آدرس ایمیل باز شده و با یک کارت به نام خودتان پرداخت شده. در آن نقطه، زنجیره از ترافیک تا خود شما چهار جهش طول دارد، کاملاً مستند است، و در پایگاهداده صورتحساب یک ارائهدهنده نشسته و منتظر است کسی سؤال کند. شما ناظر را حذف نکردهاید؛ فقط آن را به جایی با سابقهنگاری بهتر منتقل کردهاید.
این تفاوت میان یک VPN که موقعیت شبکهای شما را عوض میکند و یک VPN که میزان افشای شما را عوض میکند است، و این تفاوت در لحظه پرداخت تعیین میشود نه در فایل پیکربندی. اگر دلیل خواستن یک خروجی خصوصی این است که ISP یا دولتتان نباید تاریخچه مرور شما را داشته باشند، و سرور تحت هویت قانونی خودتان با پرداخت کارتی اجاره شده، راهاندازی همچنان کار میکند — ISP واقعاً نمیتواند از داخل تونل ببیند. اما این یک بهبود حریم خصوصی در برابر یک ناظر مشخص است، نه در برابر یک ناظر مصمم. با خودتان روشن باشید که دارید کدامیک را میخرید.
بستن این شکاف یعنی نه حساب بتواند هویت شما را نشان دهد و نه پرداخت. یعنی هیچ احراز هویتی هنگام ثبتنام — فقط یک آدرس ایمیل یکبارمصرف و بس، که در عمل معنای واقعی میزبانی بدون KYC همین است — و پرداخت روی ریلی که نامتان را حمل نمیکند. Monero پاسخ تمیز است چون مبالغ و طرفین اصلاً روی یک دفتر کل عمومی نیستند؛ راهنمای گامبهگام سر تا ته حدود پنج دقیقه طول میکشد. Bitcoin هم کار میکند اما یک سابقه عمومی دائمی است، پس فقط بهاندازه سکههایی که واردش میشوند خصوصی است، و مقایسه این دو پیش از اینکه تصمیم بگیرید بیاهمیت است، ارزش خواندن دارد.
بعد حوزه قضایی است، که تعیین میکند حتی اگر کسی درخواست بدهد، چه چیزی را میشود مجبورش کرد. یک ارائهدهنده که خارج از حوزه 14-Eyes ثبت شده، با دیتاسنترهایی در کشورهایی که قانون نگهداریشان الزامی به نگهداشتن سوابق ترافیک ندارد، از نظر ساختاری قادر نیست تاریخچه مروری را تحویل دهد که هرگز جمعآوری نکرده. این تضمینی قویتر از یک وعده «نگاه نمیکنیم» است. برای نسخه کامل این استدلال — اینکه واقعاً چه چیزی درباره یک سرور اجارهای قابلردیابی است و چه چیزی نیست — پاسخ صادقانه همینجاست، شامل بخشهایی که کمتر از تبلیغات دلگرمکنندهاند.
اندازهگیری: یک تونل واقعاً به چقدر سرور کم نیاز دارد
اجرای WireGuard بهطرز چشمگیری ارزان است. داخل هسته زندگی میکند، پس بستهها هرگز به userspace کپی نمیشوند؛ از ChaCha20-Poly1305 استفاده میکند، که روی هر CPUای سریع است و برای سریع ماندن به شتابدهی AES وابسته نیست؛ و فقط چند کیلوبایت وضعیت به ازای هر peer نگه میدارد و نه چیز دیگری. یک هسته پردازشی مدرن بهتنهایی چیزی حدود یک گیگابیت توان عبور رمزنگاریشده را جابهجا میکند، و حافظه عملاً هرگز محدودیت اصلی نیست. محدودیت عملی روی یک تونل VPS، آپلینک است، نه پردازنده.
که یعنی بیشتر مردم پلنشان را به دلیل اشتباهی انتخاب میکنند. یک خانواده با پنج دستگاه که تمام روز مرور، استریم و تماس تصویری میکنند، اصلاً نزدیک محدودیتهای کوچکترین سطح پلن هم نمیشوند — CPU بیکار مینشیند و پهنای باند نامحدود است. سطح پلن را وقتی بالا ببرید که تعداد زیادی peer همزمان دارید که ترافیک واقعی فشار میآورند، یا وقتی میخواهید فضای مانور بیشتری روی آپلینک داشته باشید، نه به این خاطر که حس میکنید یک تونل باید طلبکار باشد.
| چه چیزی اجرا میکنید | peerهای همزمان | سطح پلن | محدودیت واقعی |
|---|---|---|---|
| استفاده شخصی — لپتاپ، گوشی، تبلت | 1–5 | Starter، $8.50/mo | هیچ. CPU بیکار است و 1 Gbps نامحدود است. |
| یک خانواده یا یک تیم کوچک | 5–20 | Starter یا Growth، $13.50/mo | اوج پهنای باند همزمان، هرگز CPU. |
| یک گروه بزرگتر، ترافیک پایدار | 20–80 | Growth یا Business، $20/mo | آپلینک در 2.5 تا 5 Gbps؛ CPU هنوز جا دارد. |
| ارائه خروجی بهصورت سرویس برای یک اجتماع | 80–250 | Business یا Pro، $27.50/mo | حالا هم CPU مهم میشود و هم اینکه رفتار یک peer به اعتبار همه تبدیل میشود. |
| رمزنگاری با نرخ کامل خط برای یک هاست | هرچقدر | Scale، $34.50/mo | 10 Gbps نامحدود، چند هسته برای پخش کردن بار رمزنگاری. |
برای اینکه تونل چه حسی داشته باشد، موقعیت مکانی بیشتر از سختافزار اهمیت دارد. هر بستهای که میفرستید یک دور از سرور میزند، پس تأخیر شما به همهجا میشود تأخیرتان تا سرور بهعلاوه تأخیر سرور تا مقصد بعدی. اگر تونل همیشه روشن است و پاسخگویی برایتان مهم است، دیتاسنتری نزدیک خودتان انتخاب کنید؛ اگر اینطور نیست، یکی نزدیک به چیزی که به آن دسترسی پیدا میکنید انتخاب کنید. آمستردام کوتاهترین مسیر به بیشتر نقاط اروپاست، زوریخ و ریکیاویک چند میلیثانیه را با حوزههای قضاییای با قانون حریم خصوصی قویتر معاوضه میکنند، و بخارست از هر دو جهت میان این دو قرار دارد.
یک چیز دیگر هم پیش از انتخاب ارزش دانستن دارد: دستدهی WireGuard روی سیم شکل قابلشناساییای دارد، و یک فایروال که deep packet inspection انجام میدهد میتواند بدون دانستن هیچچیز درباره مقصد، آن را شناسایی و دور بیندازد. در بیشتر جاهای دنیا این موضوع اصلاً پیش نمیآید. در تعداد انگشتشماری از شبکهها، یعنی WireGuard بهتنهایی وصل نمیشود، و به یک لایه انتقال مبهمساز جلوی آن نیاز دارید — Shadowsocks، یک استک xray یا v2ray، یا یکی از فورکهای WireGuard که دستدهی را padding میکند. همه آنها روی همان instance اجرا میشوند؛ این فقط یک لایه اضافهشده روی آن است، نه یک پلن متفاوت.
سالها اجرایش کنید بدون اینکه به آن فکر کنید
بار عملیاتی یک endpoint شخصی WireGuard تقریباً صفر است، اما واقعاً صفر نیست، و همین تفاوت چیزی است که یک خروجی خصوصی را از یک خروجی هکشده جدا میکند. همه موارد زیر یک راهاندازی یکبارهاند، بهجز مورد آخر، که حدود ده دقیقه در ماه است.
اول در ورودی را قفل کنید. SSH فقط با کلید — PasswordAuthentication no، PermitRootLogin prohibit-password — و یک فایروال که دقیقاً دو چیز را از اینترنت میپذیرد: پورت UDP وایرگارد، و SSH. اگر میخواهید کامل کار کنید، SSH را طوری جابهجا کنید که فقط روی آدرس تونل گوش بدهد، که یعنی تنها سرویس قابلدسترس روی رابط عمومی، خودِ WireGuard است، و WireGuard اصلاً به بستههای احراز-هویت-نشده پاسخ نمیدهد. یک پورتاسکن روی سرور آنوقت هیچچیز برنمیگرداند، که برای یک سرور روبهروی اینترنت واقعاً یک ویژگی غیرمعمول است.
بهروزرسانیهای امنیتی خودکار را روشن کنید و بگذارید اجرا شوند. هسته اینجا به شکلی اهمیت دارد که در بیشتر سرورها ندارد، چون پیادهسازی WireGuard بخشی از خود آن است. وقتی یک بهروزرسانی هسته میرسد ریبوت کنید؛ wg-quick@wg0 زیر systemd خودش تونل را برمیگرداند، و کلاینتهایی که PersistentKeepalive دارند ظرف چند ثانیه، بدون اینکه کسی دستی به آنها بزند، دوباره وصل میشوند.
با کلیدها مثل حسابها رفتار کنید، چون واقعاً همان هستند. یک جفتکلید به ازای هر دستگاه، هرگز بین دو دستگاه مشترک نشود. لغو دسترسی یعنی حذف همان بلوک [Peer] و اجرای wg syncconf wg0 <(wg-quick strip wg0)، که تغییر را بدون قطع نشست هیچکس دیگری اعمال میکند. از /etc/wireguard/ در جایی رمزنگاریشده و بیرون از دستگاه پشتیبان بگیرید — از دست دادنش یعنی باید هر دستگاه را دستی دوباره ثبت کنید. اگر سرور چیز دیگری هم دارد که برایتان اهمیت دارد، رمزنگاری کامل دیسک افزودنی معقولی است، هرچند برای یک تونل خالص، فراتر از همان یک دایرکتوری چیز زیادی روی دیسک نیست که ارزش رمزنگاری داشته باشد.
بدون لاگگیری مانیتور کنید. wg show زمان آخرین دستدهی هر peer را به شما میدهد، که برای پاسخ به هر سؤال عملیاتیای که واقعاً خواهید داشت کافی است — بالاست یا نه، این دستگاه وصل است یا نه، آخرین بار کی چکاین کرده. در برابر وسوسه اضافه کردن حسابداری ترافیک یا لاگ اتصال مقاومت کنید: شما این را دقیقاً برای این ساختید که هیچکس رکوردی از اینکه ترافیکتان کجا میرود نداشته باشد، و محتملترین کسی که ممکن است حالا آن رکورد را بسازد خودتان هستید. از طرف ما چیزی برای غیرفعال کردن وجود ندارد — نه netflow، نه port mirroring، نه هیچنوع capture ترافیکی، و جدولهای ARPای که ظرف 24 ساعت منقضی میشوند، که در صفحه حریم خصوصی مستند شده نه اینکه فقط در یک فوتر وعده داده شده باشد.
کل کار همین است. پانزده خط پیکربندی، یک فایروال، بهروزرسانیهای امنیتی روی یک تایمر، و یک نگاه ماهانه به wg show. بخش سخت یک VPN خودمیزبان هرگز خودِ VPN نبوده — بخش سخت این است که به یاد داشته باشید تونل فقط ناظر را جابهجا میکند، و اینکه این جابهجایی چقدر میارزد، کاملاً به این بستگی دارد که چهار نشتی بالا بسته باشند و حسابی که زیرش نشسته به خودتان برنگردد.