چگونه پایداری VPN را بدون ثبت مرور خود آزمایش کنیم
پایداری تونل را با یک کاوشگر ثابت، چهار واقعیت نمونهبرداریشده و یک گزارش رویداد زماندار اثبات کنید، بهجای اینکه مرور روزمره را وارد آزمون کنید.
میخواهید بدانید آیا تونل از خواب یک لپتاپ جان سالم به در میبرد، قدم زدن میان نقاط دسترسی، یا یک ساعت تماس، و ترجیح میدهید هنگام فهمیدنش گزارش همهچیزی که میخوانید را به کسی ندهید. سه چیز به این پاسخ میدهد: یک کاوشگر ثابت، همان چهار واقعیت که طبق برنامه نمونهبرداری میشوند، و رویدادی که آنها را تغییر داد، نوشتهشده. ده دقیقه از این بهتر از یک بعدازظهر نشستن و تماشای بارگذارینشدن یک صفحه است. گزارشی که در پایان میماند هم آنقدر کوتاه است که بدون پاک کردن نیمی از آن به یک تیکت پیوست شود.
تصمیم بگیرید پایدار چه معنایی باید داشته باشد
«VPN قطع شد» چهار خرابی متفاوت است که یک واژه پوشانده است. همتا میتواند دستدادنش را از دست بدهد، مسیر میتواند به دروازه محلی بازگردد، حل نام میتواند به سروری برود که هرگز از میان تونل پاسخ نمیدهد، یا همه اینها سالم باشند در حالی که یک برنامه هنوز شکست میخورد. پیش از جمعآوری هر چیزی تصمیم بگیرید کدام با نشانه شما میخواند، چون هر کدام کاوشگر دیگری میخواهد. سپس فاصلهای انتخاب کنید که بتوانید نگه دارید: یک نمونه هر سی ثانیه برای ده دقیقه، رومینگ را میگیرد بیآنکه آزمون به بار کاری تبدیل شود.
اگر شکایت تماسی است که وقتی به آشپزخانه میروید یخ میزند، ویژگی موردنیاز این است که آیا درخواست تازه پس از رومینگ کامل میشود. این با یک خط بررسی میشود و هیچ مروری ثبت نمیکند.
یک کاوشگر بیضرر را ثابت کنید
مقصدی انتخاب کنید که پرسیدنش مجاز است و به حسابهای شما گره نخورده: یک میزبان مستندات، یک نقطه پایانی وضعیت داخلی، یا خود دروازه تونل. کار را تکرارپذیر کنید، مثلاً curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://example.com/ که برای هر تلاش یک خط چاپ میکند. آن قالب خروجی را در تمام اجرا ثابت نگه دارید. کد وضعیت و مدتی که دو بار به یک شکل جمع شدهاند همان چیزی است که دو اجرا را قابل مقایسه میکند.
در برابر سایتی که واقعاً به آن تکیه دارید مقاومت کنید. صفحه بانک یا وبمیل ردیابها، تغییرمسیرها و محتوای شخصی را به اندازهگیری میکشد و شناسههای نشست را در هر چیزی که بعداً در تیکت بچسبانید چاپ میکند. در تمام بررسی از همان مقصد استفاده کنید و آن را کنار فاصله بنویسید.
چهار واقعیت را نمونهبرداری کنید
وضعیت همتا، مسیر، حلکننده و یک درخواست تازه چهار مشاهدهاند و هر کدام منبعی ارزان دارند. در WireGuard، wg show wg0 latest-handshakes مهر زمانی همتا را میدهد و ip route get 1.1.1.1 نشان میدهد هسته از کدام رابط استفاده میکند. در OpenVPN همان وضعیت در پرونده وضعیتی است که --status /run/openvpn/status 10 مینویسد یا پشت state در رابط مدیریت. کارخواه Windows در PowerShell با Get-NetAdapter و Resolve-DnsName میماند.
آنها را در یک پایانه به حلقه بزنید تا هر خط مهر زمانی داشته باشد: for i in $(seq 1 20); do date -Is; wg show wg0 latest-handshakes; ip route get 1.1.1.1; sleep 30; done. این حلقه سه تا از شش فیلد گزارش را پوشش میدهد؛ نسخه کارخواه یک بار در بالا نوشته میشود و مهر زمانی رویداد وقتی رویداد رخ میدهد اضافه میشود.
حلکننده همان واقعیتی است که مردم از آن میگذرند و dig +short آن را پنهان میکند، چون آن شکل فقط پاسخ را چاپ میکند. سرور را صریح با dig example.com | grep SERVER: بپرسید، یا جایی که dig نصب نیست از nslookup example.com استفاده کنید که نشانی سروری را چاپ میکند که پرسش به آن رفته است. دستدادن قدیمی روی تونل بیکار هم بهطور خودکار خرابی نیست، چون WireGuard کلیدها را فقط وقتی عوض میکند که ترافیکی برای محافظت باشد.
رویداد را ایجاد کنید، نه نشت را
پنج دقیقه آرام را بهعنوان خط پایه پیش از رویدادی که برایتان مهم است بگیرید، چه بستن درپوش باشد، چه رفتن به نقطه دسترسی دیگر یا تغییر به هاتاسپات تلفن. زمانی را که آن را ایجاد کردید بنویسید تا نمونههای دو طرف همتراز شوند.
بدون آن مهر زمانی گزارش یک شکاف نشان میدهد و هیچکس نمیتواند بگوید کارخواه آن را بست یا شبکه. دو اجرا با رویداد در جاهای مختلف ارزشمندتر از ده اجرا بدون آن است. از کنترلهای قطع و اتصال مجدد خود کارخواه استفاده کنید. کلید قطع را خاموش نکنید و ترافیک را بیرون تونل هل ندهید تا ببینید چه میشود، چون روی لپتاپ مدیریتشده این نقض سیاست است و روی ماشین خودتان همان در معرضبودنی را میسازد که در حال آزمودنش بودید.
گزارش را آنقدر کوچک نگه دارید که تمام شود
شش فیلد برای هر نمونه: زمان، نسخه کارخواه، نقطه پایانی، شبکه دسترسی، رویداد، نتیجه. نشانیهای وب، بارهای داده، توکنها و هر چیزی که شناسه نشست دارد را بیرون بگذارید، چون گزارش شاهدی درباره تونل است و نه چیز دیگر. آن را کنار حلقه نگه دارید تا نفر بعدی بدون پرسیدن معنای ستونها دوباره اجرایش کند.
پس از هر تغییر، آزمون را با همان کاوشگر و همان فاصله تکرار کنید؛ اگر مقصد و نسخه کارخواه را با هم عوض کنید، نتیجه به هیچکدام تعلق ندارد. یک اجرای پاک دهدقیقهای شاهد آن شرایط و آن مقصد است، نه وعدهای درباره شبکه هتل ماه بعد. اسکریپت و الگوی گزارش را جایی نگه دارید که پیدایشان کنید. محدودیتهای مستندشده WireGuard ارزش خواندن دارند پیش از آنکه قطعی را به پروتکل نسبت دهید.