كيف تسجّل عنوان خروج VPN الذي استخدمته وتتحقق منه
تعرض تطبيقات العميل اسم موقع، لا العنوان الذي خرج منه حركة المرور. التقط عنوان IP للخروج عند الاتصال وقارنه بمرجع مباشر.
اسأل عميل VPN لسطح المكتب عن الخوادم التي استخدمتها، والجواب الصادق عادة هو اسم موقع. ذلك الاسم هو نقطة الدخول التي اخترتها، والعنوان الذي خرجت منه حركة المرور قد يكون جهازًا آخر تمامًا. لا شيء في التطبيق مصمم للاحتفاظ بالرقم الثاني، لذا يجب بناء السجل في لحظة الاستخدام. هناك مقاربتان، وواحدة فقط منهما تصمد أمام حالة دعم.
سجلان، ولا يوجد منهما إلا واحد
عرض العميل نفسه هو في أفضل الأحوال قائمة بالمواقع المختارة مع طوابع زمنية. هذا قرار تصميمي وليس سهوًا: العناوين تفصيل تشغيلي، وهي تتبدل بين التعيينات، وكشف المطابقة يزيد صعوبة الدعم ومعالجة إساءة الاستخدام معًا. يضع المزوّدون نسخًا سحابية أمام شبكاتهم تحديدًا كي يتمكن الطرف الأخير من الانتقال دون إخبار أحد. ما يعرضه التطبيق عليك هو اختيارك، لا المسار الذي سلكته الحركة.
السجل الذي يمكنك بناؤه هو ملف محلي يحتوي عنوانًا عامًا واحدًا وطابعًا زمنيًا واحدًا بتوقيت UTC في كل سطر. إنه أصغر وأقبح وأكثر فائدة بكثير، لأنه يصف بالضبط ما يستطيع المراقب الخارجي رؤيته أيضًا.
الخيار أ: التقط عنوان الخروج بنفسك
تعيد خدمة الصدى عنوان المصدر الذي وصل منه الطلب، وهو بحكم التعريف عنوان الخروج. شغّل الالتقاط بعد أن يعلن النفق الاتصال، لأن العميل الذي يقول متصل قبل أن تستقر المسارات وDNS سيسجل عنوان ما قبل النفق ويلوث السجل من سطره الأول.
#!/bin/sh
umask 077
log="$HOME/vpn-exit.log"
printf '%s %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$(curl -fsS https://api.ipify.org)" >> "$log"
تفصيلان يجعلان هذا المقطع صالحًا للاستخدام لا للزينة. يشترك الطابع الزمني والعنوان في سطر واحد، فلا يضطر تحليل لاحق إلى مزاوجة السجلات، بينما umask 077 يبقي الملف خاصًا من لحظة إنشائه. شغّله مرة واحدة لكل اتصال لا مرة واحدة لكل إقلاع، واحتفظ بملف واحد لكل جهاز.
يسجل السجل متى استخدمت نفقًا ومن أي شبكة ظهرت، وهو أقرب إلى سجل تصفح منه إلى عداد. اختر مدة احتفاظ تستطيع الدفاع عنها، وأبقِ الملف خارج مجلدات المزامنة المشتركة، واحذفه عن عمد.
الخيار ب: اطلب سجلًا من المزوّد
بعض المزوّدين يحتفظون بسجلات اتصال ويجيبون عن سؤال دعم بطابع زمني واسم خادم. ذلك السجل يصف بنيتهم التحتية لا حركتك، وهو بقدر ما تبلغ نافذة احتفاظهم واستعدادهم للنظر. وهو كذلك يصف جلسة لا طلبًا. النافذة عادة قصيرة، وتقاس من جهة المزوّد للنفق.
المزوّدون الذين يعلنون عدم الاحتفاظ بالسجلات لا يستطيعون إنتاج ذلك عند الطلب، وقائمة المواقع الأخيرة على جهة العميل ليست الشيء نفسه. طلب عنوان خروج من مزوّد بلا سجلات ينتهي عادة بشرح لسبب عدم وجود تلك البيانات.
ما يمكن لكل سجل إثباته في حالة دعم
يجيب السجلان عن سؤالين مختلفين، وفي الجدول تتوقف المقارنة عن أن تكون أكاديمية.
| Question | Your local log | Provider record |
|---|---|---|
| Which address did the traffic leave from? | Yes, for the moment it was captured | Usually not disclosed |
| Was the tunnel in use at 14:20? | Yes, if the capture ran | Yes, within the retention window |
| Why did a location get slower? | Yes, by comparing addresses over time | Sometimes, as an infrastructure note |
| Who sent this specific request? | No | No |
العمود الأول وحده تحت سيطرتك. يمكن لسجل المزوّد أن يؤكد أن حسابًا كان متصلًا في وقت معين، لكنه لا يستطيع تأكيد أي الطلبات استخدمت النفق، ولن يذكر عنوانًا يعده المزوّد تفصيلًا تشغيليًا. لا يحدد أي من السجلين شخصًا، لأن عنوان خروج مشتركًا قد يحمل عملاء كثيرين في الدقيقة نفسها.
قارن كليهما بمرجع قبل أن تثق بأي منهما
العنوان وحده لا يثبت شيئًا. التقط العنوان المباشر قبل الاتصال، والعنوان عبر النفق بعد، وقارنهما. القيم المتطابقة تعني أن النفق لا يحمل ذلك الطلب، سواء بسبب نفق منقسم أو وسيط مهيمن أو عميل ارتد إلى مسار مباشر.
curl -fsS https://api.ipify.org; echo
curl -fsS https://api64.ipify.org; echo
dig +short TXT o-o.myaddr.l.google.com @1.1.1.1
كرر المقارنة لـ DNS ولـ IPv6، لأن صدى العنوان يثبت مسار طلب HTTP واحدًا ولا شيء عن أي مُحلِّل أجاب. الجهاز الذي يتسرب في أحدهما قد يبدو سليمًا تمامًا في الآخر.