Internet Monitor: أداة مفتوحة المصدر تراقب اتصالك بالإنترنت 24/7 وتوثق كل انقطاع

Internet Monitor: أداة مفتوحة المصدر تراقب اتصالك بالإنترنت 24/7 وتوثق كل انقطاع
هذا المقال متاح بالإنجليزية Read in English

مشكلة انقطاع الإنترنت بدون أدلة

كم مرة شعرت أن اتصالك بالإنترنت يضعف أو ينقطع لفترات قصيرة، لكنك لا تستطيع إثبات ذلك؟ مزود الخدمة يطلب منك توثيق التوقيتات والمدة والأسباب، وأنت ليس لديك سوى شعور غير مؤكد بأن هناك مشكلة.

هذه الفجوة هي بالضبط ما يسدها Internet Monitor.

🔗 الموقع الرسمي: github.com/FutureSolutionDev/internet-monitor

ما هو Internet Monitor؟

Internet Monitor هو تطبيق مجاني ومفتوح المصدر، طورته FutureSolutionDev بلغة Go، يعمل في خلفية نظام التشغيل ويراقب اتصالك بالإنترنت على مدار الساعة. يستخدم ثلاث آليات فحص متزامنة: TCP Ping وHTTP وDNS. عندما يحدث أي خلل في الاتصال، يقوم التطبيق بتسجيل الحدث مع التوقيت والمدة والسبب، ويعرض إشعاراً فورياً، ويرسل تنبيهاً إلى Discord أو Slack إذا رغبت في ذلك.

النسخة الحالية هي v0.8.1، وتم إصدارها في 12 مايو 2026.

لماذا هذا التطبيق مفيد؟

لثلاث فئات رئيسية من المستخدمين:

المستخدم العادي الذي يعاني من انقطاعات متكررة في الإنترنت ولا يملك وسيلة لإثباتها لمزود الخدمة. التطبيق يعطيه سجلاً مفصلاً بالتوقيتات والمدة ونسبة فقدان الحزم.

فريق الدعم الفني في الشركات أو مزودي الخدمة الذين يحتاجون إلى بيانات واضحة لتشخيص المشاكل. يمكنهم تصدير السجلات بصيغة CSV أو JSONL وتقديمها للمعنيين.

المطورون الذين يريدون دمج مراقبة الاتصال في أنظمتهم الخاصة عبر Webhooks، حيث يرسل التطبيق بيانات منظمة عن كل حدث.

آلية العمل

التطبيق يقوم بثلاثة فحوص متزامنة في نفس الوقت:

فحص TCP Ping عبر محاولة الاتصال بخوادم محددة مثل 8.8.8.8:53. هذا الفحص يتحقق من وصول حزمة البيانات إلى وجهتها على مستوى النقل.

فحص HTTP عبر إرسال طلب إلى عنوان URL يعيد استجابة 200 أو 204. هذا يتحقق من أن خدمة الويب تعمل بشكل صحيح.

فحص DNS عبر محاولة حل أسماء نطاقات مثل google.com. هذا يتحقق من أن خدمة تحويل الأسماء تعمل.

يمكن تكوين جميع هذه الأهداف عبر ملف الإعدادات. التطبيق يعتبر الاتصال “مقطوعاً” فقط بعد فشل عدد محدد من المحاولات المتتالية (ثلاث محاولات افتراضياً)، لتجنب الإشعارات الخاطئة الناتجة عن تقلبات عابرة.

عند حدوث انقطاع حقيقي، يسجل التطبيق نسبة فقدان الحزم، ومتوسط زمن الاستجابة، والمدة الكاملة للانقطاع. كل هذا البيانات تُحفظ في ملفات JSONL يومية منفصلة للاتصال ونتائج اختبار السرعة.

لوحة التحكم الحية

التطبيق يوفر لوحة تحكم تعمل عبر المتصفح على المنفذ 8765. فيها:

رسم بياني حي لزمن الاستجابة (latency) يتحدث تلقائياً كل خمس ثوانٍ.

إحصاءات فورية عن حالة الاتصال الحالية وعدد الانقطاعات المسجلة.

سجل بالأحداث مرتب زمنياً.

جدول بالفحوص الأخيرة مع نتائج كل طبقة (TCP وHTTP وDNS).

زر لاختبار سرعة التنزيل مباشرة.

إمكانية تصدير سجل الاتصالات وسجل اختبارات السرعة إلى ملف CSV.

واجهة الإعدادات منظمة في أربع تبويبات: المراقبة، الأهداف، الإشعارات، اختبار السرعة.

الواجهة ثنائية اللغة بالكامل: العربية والإنجليزية، مع دعم كامل للكتابة من اليمين إلى اليسار.

اختبار السرعة المدمج

التطبيق يحتوي على اختبار سرعة تنزيل يعمل بطريقة تكيفية: يبدأ بحمولات صغيرة ويزيد حجم القطع تدريجياً خلال المدة المحددة (10 ثوانٍ افتراضياً). يستخدم اتصالات متوازية متعددة (4 افتراضياً) لإشباع الروابط السريعة الحديثة. يعتمد على نقطة نهاية Cloudflare السحابية افتراضياً ولا يتطلب حساباً.

نتائج اختبار السرعة تُحفظ في ملف منفصل عن سجل الاتصال، ويمكن عرضها وتصديرها من لوحة التحكم. يمكن أيضاً تكوين إشعار عند انخفاض السرعة عن حد معين.

الإشعارات الفورية

عند تغير حالة الاتصال (متصل، متدهور، مقطوع)، يقوم التطبيق بعدة إجراءات:

عرض إشعار ويندوز Toast في نظام التشغيل.

إرسال Webhook إلى Discord أو Slack بتنسيق منظم يحتوي على تفاصيل كل طبقة ونسبة فقدان الحزم والمدة.

تشغيل صوت تنبيه مخصص.

يمكن تكوين Webhook فارغاً لتعطيل الإشعارات البعيدة.

الخصوصية والأمان

التطبيق لا يرسل أي بيانات إلى خوادم خارجية إلا إذا قمت بتكوين Webhook بنفسك. اختبارات السرعة ترسل طلبات فقط إلى النقطة الطرفية التي تحددها (Cloudflare افتراضياً). لا تحتوي الحمولات على أي معرفات للجهاز. كل شيء يعمل محلياً.

التطبيق مفتوح المصدر بالكامل تحت رخصة MIT. يمكنك مراجعة الكود المصدري بنفسك، أو بناء التطبيق من المصدر إذا كنت لا تثق في الحزم الثنائية الجاهزة.

التثبيت والتشغيل

لنظام Windows 10 أو 11، قم بتحميل الملف internet-monitor-windows.exe من صفحة الإصدارات. شغله مرة واحدة، ستظهر أيقونة في علبة النظام (System Tray). انقر عليها بزر الفأرة الأيمن واختر Open Dashboard. المتصفح سيفتح تلقائياً على localhost:8765.

لجعله يعمل تلقائياً عند بدء تشغيل Windows، استخدم الأمر التالي في موجه أوامر بصلاحيات المدير:

scripts\install.cmd

لنظام macOS على معالجات M1 أو M2 أو M3، حمّل الملف internet-monitor-macos-arm64، اجعله قابلاً للتنفيذ بالأمر chmod +x، ثم اشغله.

لنظام Linux (Ubuntu أو Debian)، حمّل الملف internet-monitor-linux، اجعله قابلاً للتنفيذ، ثم اشغله.

في جميع الحالات، لوحة التحكم متاحة على localhost:8765.

البناء من المصدر

إذا كنت تفضل بناء التطبيق بنفسك، تحتاج إلى Go 1.21 أو أحدث. بالنسبة لنسخة علبة النظام (بدون نافذة رسومية)، لا تحتاج إلى أي متطلبات إضافية:

git clone https://github.com/FutureSolutionDev/internet-monitor.git cd internet-monitor go mod tidy CGO_ENABLED=0 go build -ldflags=”-H=windowsgui -s -w” -o internet-monitor.exe .

بالنسبة للنسخة ذات النافذة المستقلة، تحتاج إلى GCC. على Windows، السكربتات تتولى تثبيته تلقائياً. على macOS أو Linux، من المفترض أن GCC مثبت مسبقاً.

تنسيق السجلات

سجل الاتصال connectivity_YYYY-MM-DD.jsonl يحتوي على سطر JSON واحد لكل حدث:

{ “timestamp”: “2026-05-11T14:30:00Z”, “event”: “disconnected”, “duration_seconds”: 45.2, “reason”: { “tcp_ping_failed”: true, “http_failed”: true, “dns_failed”: false, “packet_loss_pct”: 80.0, “avg_latency_ms”: 0 } }

سجل اختبار السرعة speedtest_YYYY-MM-DD.jsonl يحتوي على:

{ “timestamp”: “2026-05-11T14:35:00Z”, “event”: “speed_test”, “download_mbps”: 94.3, “latency_ms”: 12, “duration_seconds”: 9.8, “parallel_connections”: 4, “triggered_by”: “user” }

تنسيق Webhook Discord

عند انقطاع الاتصال، يرسل التطبيق رسالة منسقة بهذا الشكل:

{ “username”: “Internet Monitor”, “embeds”: [{ “title”: “❌ Internet Disconnected”, “color”: 16007988, “fields”: [ {“name”: “🔌 TCP Ping”, “value”: “❌ Failed”, “inline”: true}, {“name”: “🌐 HTTP”, “value”: “❌ Failed”, “inline”: true}, {“name”: “🔍 DNS”, “value”: “✅ OK”, “inline”: true}, {“name”: “📉 Packet Loss”, “value”: “85.0%”, “inline”: true}, {“name”: “⏱️ Duration”, “value”: “2m 15s”, “inline”: true} ], “timestamp”: “2026-05-11T14:30:00Z” }] }

عند اختبار السرعة:

{ “username”: “Internet Monitor”, “embeds”: [{ “title”: “🚀 Speed Test Completed”, “color”: 2278718, “fields”: [ {“name”: “📥 Download”, “value”: “94.3 Mbps”, “inline”: true}, {“name”: “⏱️ Duration”, “value”: “10.0s”, “inline”: true}, {“name”: “📡 Latency”, “value”: “12ms”, “inline”: true} ] }] }

خطة التطوير المستقبلية

بحسب المستودع، الميزات القادمة تشمل:

قياس سرعة الرفع في الإصدار الثاني.

دعم Webhook لتلغرام.

اختبارات سرعة مجدولة تلقائياً.

تحسين واجهة لوحة التحكم للأجهزة المحمولة.

بناء نسخة Windows ARM64.

تحليلات أسبوعية لكل مزود خدمة.

تصدير تقارير PDF لتقديمها لمزودي الخدمة.

المساهمة في المشروع

المشروع يرحب بالمساهمات في مجالات متعددة: إصلاح الأخطاء، إضافة ميزات جديدة، تحسين الترجمة العربية أو إضافة لغات أخرى، توثيق الكود.

قاعدة الالتزامات تتبع تقليدية الالتزامات التقليدية: feat: للإصدارات الثانوية، fix: للإصدارات التصحيحية، BREAKING CHANGE للإصدارات الرئيسية.

مقارنة سريعة مع أدوات أخرى

أداة PingPlotter تجارية وتقدم رسوماً بيانية متقدمة، لكنها غير مفتوحة المصدر ولا توفر سجلاً منظمًا بالكامل للانقطاعات.

أداة SmokePing مفتوحة المصدر لكنها تتطلب تثبيت خادم ويب وPerl، وتعمل فقط على Linux.

Internet Monitor يتميز بكونه تطبيقاً مستقلاً يعمل على Windows وmacOS وLinux، بواجهة مستخدم رسومية حديثة، وإشعارات فورية، ولوحة تحكم في المتصفح، وسجلات منسقة جاهزة لتقديمها لمزود الخدمة.

خلاصة

إذا كنت تعاني من انقطاعات متكررة في الإنترنت ومزود الخدمة يطلب منك أدلة، أو إذا كنت مسؤول نظام تريد مراقبة استقرار الاتصال في مكتبك أو منزلك، أو إذا كنت مطوراً تريد أداة مراقبة بسيطة وقابلة للتخصيص، فإن Internet Monitor هو الحل المناسب.

التطبيق مجاني، مفتوح المصدر، يحترم خصوصيتك، ويعمل بصمت في الخلفية دون أن يستهلك موارد كبيرة. جربه اليوم، وفي المرة التالية التي يتصل بك مزود الخدمة ليقول “المشكلة من عندك”، أرسل لهم السجل.

روابط سريعة

المستودع على GitHub: github.com/FutureSolutionDev/internet-monitor صفحة الإصدارات: github.com/FutureSolutionDev/internet-monitor/releases ملف الإعدادات المثالي: github.com/FutureSolutionDev/internet-monitor/blob/master/config.json.example توثيق API Webhook: github.com/FutureSolutionDev/internet-monitor#webhooks

التفاعلات والتعليقات

سجّل الدخول بحساب GitHub للتعليق أو التفاعل. مدعوم بـ Giscus (مخزَّن في GitHub Discussions)

EN