سن دستدادن WireGuard مهلت جلسه نیست
زمانسنجهای تمدید کلید، کلیدها را اداره میکنند نه دسترسی کاربر را. خواندن latest-handshakes از وضعیت پروتکل یک همتا میگوید، نه از منقضی شدن مجوز آن.
همتایی که دیگر ترافیک عبور نمیدهد کلیدش را از دست نمیدهد، و یک دستدادن تازه ثابت نمیکند که کسی مجوز استفاده از آن را تمدید کرده است. زمانسنجهای WireGuard کلیدها را تازه و بستهها را در جریان نگه میدارند؛ آنها کاربری را مدل نمیکنند که پس از چند دقیقهٔ معین خارج میشود. اینجا سه پرسش با هم اشتباه میشوند و هر یک شواهد متفاوتی دارد. همین تمایز تعیین میکند سراغ کدام ابزار برویم.
سه پرسش، یک خروجی فرمان
اپراتورها میپرسند آیا همتا در دسترس است، آیا فعال بوده و آیا هنوز مجاز است. اولی وضعیت پروتکل است، دومی شمارندههای ترافیک و سومی مجوز. تنها دو مورد نخست را میتوان از یک رابط WireGuard خواند و آنها معمولاً برای پاسخ به هر سه به کار میروند.
| Question | Evidence it needs | What does not answer it |
|---|---|---|
| Is the peer reachable now? | A recent handshake and a working return path | An interface that exists |
| Has it been active? | Transfer counters moving over time | A handshake timestamp alone |
| Is access still granted? | The configuration or controller that authorizes it | Any protocol timer |
سطرها را سه بررسی جداگانه بخوانید. دو مورد نخست ارزاناند و با شمارندههای خودِ رابط میتوان به آنها پاسخ داد. سومی به پیکربندیای نیاز دارد که دسترسی میدهد و آن در پرونده یا سامانهٔ دیگری زندگی میکند. انتخاب سطر نادرست یعنی از یک زمانسنج پروتکل بخواهیم کار یک سیاست را انجام دهد.
زمانسنجها واقعاً چه چیزی را اداره میکنند
پروتکل ثابتهایی برای تلاش دوبارهٔ دستدادن، چرخش کلیدهای انتقال و رد بستههای محافظتشده با کلید کهنه تعریف میکند. آنها به ترافیک و به وضعیت پاسخ میدهند، نه به تقویم یا سیاستی که بگوید کسی میتواند تا 17:00 متصل بماند. به همین دلیل همتای بیکار میتواند ساعتها غیرفعال به نظر برسد و همچنان مجاز بماند.
PersistentKeepalive اغلب با مهلت غایب اشتباه گرفته میشود. بستههای خالیِ احرازشده میفرستد تا نگاشت NAT زنده بماند، و صفر کردنش آن بستهها را متوقف میکند بدون آنکه چیزی را لغو کند.
وضعیت اجرا را برای هر همتا بخوانید، با کلید عمومی نه با توضیح:
wg show wg0 latest-handshakes
wg show wg0 transfer
دستدادن تازه میگوید یک دستدادن کامل شده است. نمیگوید که سرویس خصوصی پشت تونل در دسترس است، و یک برچسب زمانی کهنه میتواند از آنِ همتایی باشد که فقط ساکت است.
چرا همتای بیکار همتای خارجشده نیست
WireGuard شیء جلسهای با آغاز و پایان ندارد. همتا یک کلید عمومی با نشانیهای مجاز است و دستدادنی که ترافیکش را محافظت میکند بهموقع و بدون ورودِ دیدنی برای کاربر جایگزین میشود. تلقی کردن نبود ترافیک تازه بهعنوان خروج، مدل را وارونه میکند.
اگر شکایت واقعی این است که اتصال پس از بیکاری شکست میخورد، علت معمولاً جای دیگری است: نگاشت NAT منقضی، دستگاهی که خوابیده یا دیوار آتشی که وضعیت را رها کرده است. با فرستادن ترافیک از سمت مقابل و آغاز جریانی تازه آزمایش کنید و مقایسه کنید چه چیزی تغییر میکند.
مهلت را همانجا بگذارید که مجوز زندگی میکند
اگر دسترسی باید در زمانی معین پایان یابد، مهلت از آنِ چیزی است که دسترسی را میدهد. کنترلری که پیکربندی همتاها را صادر میکند میتواند پیش از دادن یکی تازه، تأیید تمدیدشده بخواهد، و این ویژگی کنترلر است نه پارامتری پنهان در رابط.
برای همتاهای دستی، حذف باید به دو جا برسد: رابط در حال اجرا و پیکربندی ذخیرهشده. حذف همتا فقط در زمان اجرا با راهاندازی دوباره یا حلقهٔ همترازی باطل میشود که همان هویتی را بازمیگرداند که فکر میکردید منقضی شده است:
sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0
سپس مرز را بیازمایید نه برچسب را. تأیید کنید که همتا پس از مهلت رد میشود، مسیر تمدید کار میکند و وضعیت از بازبارگذاری مدیر جان سالم به در میبرد. سن دستدادن یک نشانهٔ عملیاتی سودمند است و سابقهٔ دسترسی نیست.