محدودیت نشست در حساب VPN اشتراکی: چرا یک دستگاه قطع میشود
یک ورود اشتراکی به سقف نشستهای همزمان میرسد و یک دستگاه قطع میشود. پیام کارخواه را بخوانید، نشستها را در کارساز بشمارید و سپس مدل هویت را درست کنید.
یک لپتاپ دوم به حسابی اضافه میکنید که از قبل روی گوشیتان فعال است، و تونل گوشی در کمتر از یک دقیقه قطع میشود. یا دستگاه جدید هرگز اتصال را کامل نمیکند و کارخواه به جای پایان مهلت، روی پیام سیاست تمام میشود. در هر دو حالت شبکه سالم است؛ تصمیمی در لایهای بالاتر از آن گرفته شده است. ورود اشتراکی یک هویت است و بیشتر سرویسهای VPN همان هویت را میشمارند، نه تعداد دستگاههایی که دارید. من از صفحه کارخواه به بیرون کار میکنم، چون معمولاً نشان میدهد کدام لایه شما را رد کرده است.
پیش از دست زدن به شبکه، پیام کارخواه را بخوانید
سه خطا شبیه هم به نظر میرسند و یکی نیستند. پایان مهلت یعنی بستههای شما به جایی نرسیدهاند. خطای TLS یا گواهی یعنی نقطه پایانی پاسخ داده اما دستدادن ناموفق بوده است. رد احراز هویت یا سیاست یعنی دروازه اعتبارنامه شما را خوانده و سپس رد کرده است. تنها سومی به داستان محدودیت نشست مربوط است، پس ابتدا آن را مشخص کنید.
کارخواههای OpenVPN خطوط مهم را در پنجره گزارش خود نگه میدارند. به آخرین تلاش اتصال بروید، نه به حلقه تلاش مجدد که پس از آن میآید، و AUTH_FAILED یا رشته دلیل ارسالشده را بجویید. کارخواه اغلب رد عمومی بدون توضیح گزارش میکند، پس گام بعدی کارساز است، نه تنظیمات کارخواه. برنامههای ارائهدهنده بدترند: پیام محدودیت دستگاه سودمند است، اما اتصالی که دو ثانیه بعد فرو میریزد یک تصمیم سیاستی است، نه گذرواژه بد. در هر حالت نام دستگاه و زمان دقیق را بنویسید؛ بهرهبردار میتواند آن جفت را در چند ثانیه با یک رکورد دسترسی تطبیق دهد.
نشستها را جایی بشمارید که کارساز میشمارد
شمارندهای که اهمیت دارد روی دروازه است. OpenVPN وقتی کارساز با --status راه میافتد یک پرونده وضعیت مینویسد و هر کارخواه متصل را با نام مشترک، نشانی واقعی و شمارندههای ترافیک فهرست میکند.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
دو سطر با نام مشترک یکسان دو نشست زنده زیر یک گواهی هستند. بهطور پیشفرض OpenVPN هر دو را نگه نمیدارد: بدون --duplicate-cn، اتصال دومی که همان گواهی را به کار میبرد اولی را جایگزین میکند و دستگاه قدیمی تونل خود را از دست میدهد. همین جایگزینی امضای محدودیت هویت است. افت تصادفی بستهها با ادب دقیقاً یک دستگاه را در لحظهای که دستگاه دیگری ظاهر میشود قطع نمیکند.
WireGuard جدول نشستی برای بررسی ندارد. wg show wg0 همتاها و آخرین دستدادنشان را چاپ میکند و هر دستگاه ثبتشده همتی با کلید خودش است. حساب اشتراکی در آنجا یک پرونده پیکربندی است که روی چند ماشین کپی شده و محدودیت از جایی میآید که آن پیکربندیها را پخش میکند: درگاه ارائهدهنده، شمار صندلیها یا قاعدهای گرهخورده به نشانی عمومی شما. راهنمای OpenVPN 2.6 گزینههای سمت کارساز را مستند میکند، اگر دروازه خودتان را میگردانید.
چهار محدودیتی را که پشت یک پیام پنهاناند جدا کنید
بیشتر تیکتهای حساب اشتراکی یکی از چهار تصمیم پذیرش است. کارخواه نمیتواند آنها را از هم تشخیص دهد، اما الگوی اینکه کدام دستگاه شکست میخورد میتواند.
همان هویت، اتصال دوم. دستگاه جدید کار میکند و دستگاه قدیمی در همان لحظه میمیرد. این یک قاعده همزمانی به ازای هویت است که دروازه یا سامانه حساب آن را اجرا میکند. چیزی خراب نشده است؛ سرویس همان کاری را میکند که سیاستش میگوید.
شمار صندلی یا دستگاه در طرح. دستگاههای نخست متصل میمانند و دستگاه بعدی رد میشود، در حالی که بقیه به کار ادامه میدهند. پیش از تغییر کارخواه فهرست دستگاههای ارائهدهنده را ببینید، چون محدودیت مجوز از سمت کارخواه درست نمیشود.
سقفی گرهخورده به نشانی عمومی شما. دو لپتاپ پشت یک روتر خانگی شکست میخورند، در حالی که همان ورود از هاتاسپات گوشی کار میکند. برای آزمودن، دستگاه دوم را به شبکه دیگری ببرید. اگر آنجا وصل شد، شما قاعدهای به ازای نشانی یا قاعده NAT میبینید، نه شمار حساب را.
بیشینهای در کل کارساز. همه روی دروازه در همان ساعت شلوغ شکست میخورند، از جمله حسابهایی که دیروز سالم بودند. --max-clients در OpenVPN همینگونه رفتار میکند و هیچ ربطی به دستگاههای ثبتشده شما ندارد.
پیش از خریدن صندلی بیشتر، نشستهای کهنه را پاک کنید
نشستی که بد تمام شده باشد میتواند هنوز یک جایگاه را نگه دارد. حسابداری RADIUS وقتی نشست آغاز میشود یک رکورد مینویسد و وقتی نشست میایستد آن را میبندد؛ وقتی کارخواه ناپدید میشود، توقف هرگز نمیرسد و کارساز نشست را نگه میدارد تا یک بهروزرسانی موقت یا مهلت منقضی شود. روی دروازه FreeRADIUS میتوانید رکوردهای باز را ببینید:
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
رکورد بازی با زمان آغاز قدیمی و بدون ترافیک به دستگاهی تعلق دارد که دیگر رفته است. آن را از کنسول بهرهبردار یا با درخواست قطع، پیش از آنکه فرض کنید محدودیت واقعی بوده، ببندید. گوشیها وقتی Wi-Fi به شبکه موبایل واگذار میکند دوباره وصل میشوند، و یک لپتاپ میتواند یک تونل در سیستمعامل و یکی دیگر درون برنامه ارائهدهنده داشته باشد، که دو نشست از یک ماشین شمرده میشود.
اشتراک یک هویت میان دستگاههایی که با هم کار میکنند را متوقف کنید
راهحل پایدار ساختاری است. به هر دستگاه گواهی خودش با نام مشترک یکتا، یا حساب خودش بدهید و ثبت کنید کدام شخص و کدام ماشین آن را دارد. در OpenVPN این یعنی یک گواهی کارخواه برای هر دستگاه، با --duplicate-cn خاموش مگر آنکه رفتار تصاحب را بخواهید؛ در WireGuard یک جفت کلید برای هر دستگاه، که همانجا ساخته میشود و هرگز کپی نمیشود.
کلونکردن یک نمایه برای دور زدن سقف دستگاه، ابطال را میشکند: ابطال یک نسخه هر دستگاهی را که آن را شریک است قطع میکند و گزارش دیگر نمیتواند بگوید کدام ماشین چه کرد. اگر محدودیت تجاری است، راهحل صادقانه یک صندلی افزوده است؛ اگر سیاست داخلی است، هویت دومی با همان حقوق دسترسی بخواهید.
به ترتیبی ثابت بررسی کنید
هر بار تعمیر را به همان شیوه بیازمایید، تا نتیجه معنایی داشته باشد.
- روی هر دستگاه خارج شوید و تأیید کنید که فهرست فعال کارساز خالی است؛ ورودیای که پاک نمیشود یک نشست کهنه است، نه اشکال کارخواه.
- دستگاهها را یکییکی وصل کنید و میان اتصالها فهرست را بپایید.
- اگر دو دستگاه باید با هم کار کنند، تأیید کنید که هر دو سطر هویتهای متفاوت دارند و هر دو دستدادن خود را تازه نگه میدارند.
- پس از گذار از Wi-Fi به شبکه موبایل تکرار کنید، چون اتصال دوباره میتواند رکورد دومی بسازد.
اگر دستگاه قدیمی هنوز وقتی دستگاه جدید وصل میشود قطع میشود، دروازه قاعدهای به ازای هویت اجرا میکند که به شما استثنایی داده نشده است. نام دستگاهها، برچسبهای زمانی و فهرست نشستهای فعال را برای بهرهبردار ببرید؛ این شکایت مبهم را به پرسش سیاستی تبدیل میکند که میتوانند پاسخ دهند.