عمر مصافحة 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
ثم اختبر الحد لا التسمية. تأكد من رفض القرين بعد الموعد، ومن أن مسار التجديد يعمل، ومن أن الحالة تنجو من إعادة تحميل المدير. عمر المصافحة إشارة تشغيلية مفيدة، وليس سجل وصول.