حوّل الكمبيوتر القديم إلى خادم منزلي
هل لديك كمبيوتر قديم لم يعد مناسباً للعمل اليومي، لكنه ما زال يعمل بشكل جيد؟
بدلاً من تركه في الخزانة أو التخلص منه، يمكنك منحه وظيفة جديدة تماماً: خادم منزلي Home Server يعمل على مدار الساعة ويقدم لك خدمات مفيدة داخل المنزل، وربما من خارجه أيضاً.
يمكن أن يتحول هذا الجهاز إلى خادم للملفات، أو مزامنة للبيانات، أو مكتبة أفلام ومسلسلات، أو سحابة شخصية، أو خادم DNS لحجب الإعلانات، أو منصة لتشغيل عشرات الخدمات باستخدام Docker.
لكن هناك خطأ شائع في طريقة الإختيار:
لا تبحث أولاً عن أخف توزيعة لينكس. ابحث أولاً عن الوظيفة التي تريد أن يؤديها الجهاز، ثم اختر العتاد ونظام التشغيل المناسبين لها.
هذا المقال موجه للمبتدئ إلى متوسط الخبرة الذي يريد الاستفادة من كمبيوتر قديم 64-bit، وليس لبناء خادم مؤسسي. والأوامر في هذا المقال مكتوبة لـ Debian Stable (وتعمل غالباً على Ubuntu Server أيضاً). إذا اخترت توزيعة أخرى، فاستبدل apt بمدير الحزم الخاص بها، وراجع توثيقها لبقية الخطوات.
الفهرس
- هل جهازك القديم مناسب أصلاً؟
- افحص العتاد قبل تثبيت أي شيء
- كيف تحدد الخدمات التي يستطيع جهازك تشغيلها؟
- أي توزيعة لينكس تختار؟
- التثبيت بدون واجهة رسومية
- أول تشغيل: SSH وIP ثابت وجدار الحماية
- الوصول إلى الخدمات: كيف تفتحها من الهاتف والتلفاز؟
- الكهرباء والحرارة والاعتمادية
- أهم الخدمات التي يمكنك تشغيلها
- Docker والحاويات: متى تستخدمها؟
- النسخ الاحتياطي: الخادم ليس نسخة احتياطية
- المراقبة والصيانة
- متى يكون شراء جهاز جديد أفضل من إعادة استخدام القديم؟
- خطة عملية: حوّل جهازك إلى خادم في عطلة نهاية أسبوع
- قائمة التحقق النهائية
هل جهازك القديم مناسب أصلاً؟
قبل تحميل أي توزيعة لينكس، توقف لحظة واسأل:
ماذا أريد من هذا الجهاز؟
خادم DNS لحجب الإعلانات ليس مثل خادم ملفات، وخادم ملفات ليس مثل خادم يقوم بتحويل فيديوهات 4K أو تشغيل عشرات الحاويات. لذلك افحص أربعة أشياء رئيسية:
المعالج CPU
الخدمات البسيطة مثل:
- مشاركة الملفات.
- مزامنة الملفات Syncthing.
- حجب الإعلانات عبر Pi-hole أو AdGuard Home.
- خادم DNS.
- خدمات خفيفة أخرى لا تستهلك المعالج باستمرار، مثل: خادم ويب بسيط، خادم كلمات مرور مثل Vaultwarden، أو أداة مراقبة مثل Uptime Kuma.
لا تحتاج عادة إلى معالج قوي.
لكن الحمل يرتفع كثيراً مع:
- تحويل الفيديو Transcoding.
- قواعد البيانات الكبيرة.
- خدمات الصور الحديثة.
- برامج Office التي تعمل داخل المتصفح.
- تشغيل عدد كبير من حاويات Docker.
- الأجهزة الافتراضية Virtual Machines.
الذاكرة RAM
الذاكرة غالباً أهم من قوة المعالج عند تشغيل عدة خدمات.
| RAM | الاستخدام المتوقع | |
|---|---|---|
| 1GB | DNS وخدمات بسيطة جداً | |
| 2GB | Samba و Syncthing وبعض الخدمات الخفيفة | |
| 4GB | عدة خدمات خفيفة + Jellyfin Direct Play | |
| 8GB | نقطة انطلاق مريحة لـ Docker والخدمات المتعددة | |
| 16GB+ | أفضل للحاويات الكثيرة أو الأجهزة الافتراضية |
هذه ليست حدوداً صارمة. الخدمة نفسها قد تستهلك موارد مختلفة حسب إعداداتها وعدد المستخدمين والبيانات الموجودة فيها.
التخزين
يمكن تشغيل النظام على قرص HDD قديم، لكن إذا كان القرص يصدر أصواتاً غريبة أو تظهر عليه أخطاء، فلا تجعله المكان الوحيد لبياناتك المهمة.
الأفضل غالباً:
- SSD صغير للنظام والتطبيقات.
- HDD أكبر للملفات والوسائط.
- نسخة احتياطية منفصلة للبيانات المهمة.
وتذكر:
مصفوفة الأقراص المستقلة RAID ليس نسخة احتياطية. ووجود قرصين في الجهاز لا يعني أن بياناتك آمنة.
الشبكة
إذا كان الخادم سيعمل داخل المنزل، فاستخدم Ethernet متى أمكن. وتأكد من أن السلك من فئة CAT5E أو اعلى و غالبا يكون CAT6 لأنهما بسرعة الغيغا ﻻ ال ميغا. شبكة 100Mbps قد تكون كافية للمهام العادية، لكنها قد تصبح عنق زجاجة مع نقل ملفات كبيرة أو تشغيل فيديوهات ذات معدل نقل مرتفع، خصوصاً بعض ملفات 4K Remux.
أما الـ Wi-Fi فقد يكون مناسبًا للخدمات الخفيفة، لكنه يجعل أداء التخزين والوسائط يعتمد أيضًا على جودة الإشارة والازدحام.
افحص العتاد قبل تثبيت أي شيء
أحد أسوأ الأخطاء هو تثبيت النظام ثم اكتشاف بعد أيام أن القرص يحتضر أو أن الذاكرة غير مستقرة.
تحقق من المعمارية
إذا كان الجهاز يدعم 64-bit، فهذا أفضل بكثير للمستقبل.
أما أجهزة x86 ذات المعمارية 32-bit، فلا أنصح ببناء خادم حديث عليها إذا كنت تريد Docker أو Jellyfin أو Nextcloud.
Docker لا يدعم x86 32-bit كمنصة تشغيل حديثة، وJellyfin لا يوفر بناءات 32-bit مناسبة لهذا الاستخدام.
اختبر الذاكرة
يمكنك استخدام Memtest86+ من قائمة إقلاع GRUB، وهو متوفر في مستودعات دبيان، أو استخدام أداة مشابهة. وإذا ظهرت أخطاء في RAM، فلا تعتمد على الجهاز لخدمات تعمل على مدار الساعة قبل حل المشكلة.
افحص القرص
على Debian وUbuntu يمكنك تثبيت أدوات SMART:
sudo apt update
sudo apt install smartmontools
ثم عرض معلومات القرص:
sudo smartctl -a /dev/sda
استبدل مسار /dev/sda بمسار القرص لديك. لا تعتمد على هذا الفحص وحده، لكنه يعطيك مؤشرات مهمة عن صحة القرص.
جرّب النظام من Live USB
إذا كنت غير متأكد من حالة الجهاز، شغّل توزيعة Linux من USB قبل التثبيت.
اختبر:
- الشبكة.
- Ethernet.
- الصوت إذا كان مهماً.
- منافذ USB.
- الأقراص.
- الحرارة.
- استقرار الجهاز.
ومن المفيد تنظيف المراوح والغبار قبل تحويل الجهاز إلى خادم يعمل طوال اليوم.
كيف تحدد الخدمات التي يستطيع جهازك تشغيلها؟
بدلاً من اختيار الخدمات عشوائياً، ابدأ بما تحتاجه فعلاً.
| نوع الجهاز | خدمات مناسبة |
|---|---|
| 32-bit أو RAM منخفضة جداً | DNS، مشاركة ملفات بسيطة، خدمات خفيفة |
| 2GB و 64-bit | Samba، Syncthing، Pi-hole، AdGuard Home |
| 4GB و 64-bit | الخدمات السابقة + Nextcloud بسيط + Jellyfin مع Direct Play |
| 8GB+ ومعالج جيد | عدة حاويات Docker وخدمات متعددة |
| 16GB+ ومعالج جيد | يمكن تشغيل العديد من الخدمات، وبعض الأجهزة الافتراضية (VMs) أو حاويات لينكس (LXC) — وهي أخف من VMs — حسب قدرة الجهاز. |
كلما زاد عدد الخدمات، لا تنظر إلى RAM فقط. راقب أيضاً المعالج والتخزين وسرعة الشبكة واستهلاك الكهرباء.
أي توزيعة لينكس تختار؟
لا توجد توزيعة واحدة هي الأفضل لكل جهاز.
Debian Stable
الخيار الافتراضي الذي أنصح به لكثير من الخوادم المنزلية.
مميزاته:
- مستقر.
- خفيف نسبياً.
- توثيق ضخم.
- مناسب للتشغيل بدون واجهة رسومية.
- مناسب لـ Docker والخدمات المنزلية.
- دورة حياة طويلة نسبياً.
إذا كنت محتاراً، ابدأ بـ Debian Stable.
Ubuntu Server LTS
خيار ممتاز للمبتدئ، خصوصاً إذا كنت تعتمد على شروحات Ubuntu المنتشرة على الإنترنت. ميزته الأساسية هي سهولة العثور على الشروحات والحلول. إذا كنت مبتدئاً تماماً وتعتمد على نسخ ولصق الشروحات، فإن Ubuntu Server LTS قد يوفر عليك وقت البحث عن الحلول، رغم أنه أثقل قليلاً.
Rocky Linux أو AlmaLinux
مناسبان لمن يريد الاقتراب من عالم Red Hat Enterprise Linux وتعلم SELinux وإدارة خوادم المؤسسات.
لكن للمبتدئ الذي يريد تشغيل Nextcloud أو Jellyfin بسرعة، قد يكون Debian أو Ubuntu أبسط.
openSUSE Leap
خيار جيد لمن يحب Btrfs وSnapper والقدرة على الرجوع إلى حالة سابقة للنظام.
خيارات أخرى
هناك مشاريع مفيدة حسب هدفك:
- OpenMediaVault: إذا كان هدفك الأساسي خادم تخزين وNAS.
- Alpine Linux: ممتاز للأجهزة 64-bit القديمة جداً، لكنه يحتاج خبرة أكبر.
- DietPi: يوفر إعداداً مبسطاً للأجهزة محدودة الموارد.
- Proxmox VE: ممتاز للـ VMs وLXC، ويمكن تشغيله بذاكرة قليلة، لكن الذاكرة المطلوبة ترتفع بسرعة حسب عدد واحتياجات VMs/LXC؛ لذلك يصبح أكثر منطقية مع جهاز لديه RAM كافية.
- TrueNAS: مناسب أكثر لجهاز مخصص للتخزين مع RAM ووسائط تخزين مناسبة؛ ليس خياري الأول لجهاز قديم محدود الموارد أو لقرص واحد.
- Cockpit: واجهة ويب بسيطة لإدارة بعض جوانب خادم Linux.
- Portainer: واجهة ويب لإدارة حاويات Docker.
- openSUSE MicroOS: خيار متقدم وممتاز لمن يريد بناء خادم يعتمد بنسبة 100% على الحاويات (Docker/Podman) مع نظام أساسي غير قابل للتغيير (Immutable) لتحديثات آمنة دون توقف. لكنه ليس الخيار الأنسب للمبتدئ الذي يرغب في تثبيت خدمات مباشرة على النظام.
- Fedora Server: خيار رائع للمحترفين الذين يريدون تعلم أحدث تقنيات لينكس وإدارة Cockpit المتقدمة، لكن دورة حياته القصيرة (حوالي 13 شهراً) تجعله عبئ صيانة على الخوادم المنزلية التي يُفضل أن تعمل لسنوات دون ترقيات رئيسية.
التثبيت بدون واجهة رسومية
إذا كان الجهاز سيُوضع في ركن من المنزل ليعمل كخادم، فأنت لا تحتاج إلى GNOME أو KDE أو سطح مكتب كامل.
ثبت النظام بدون واجهة رسومية إلا عندما تحتاجها فعلا.
هذا يوفر:
- RAM.
- CPU.
- مساحة تخزين.
- خدمات تعمل في الخلفية.
- عدد أقل من البرامج التي تحتاج إلى تحديث.
بعد ذلك يمكنك إدارة الجهاز عن طريق SSH من الكمبيوتر الرئيسي.
أول تشغيل: SSH وIP ثابت وجدار الحماية
بعد تثبيت النظام، لا تبدأ بتثبيت عشرين خدمة. ابدأ بالأساسيات.
حدّث النظام
sudo apt update
sudo apt upgrade
اعرف عنوان IP
ip a
أو يمكنك فتح صفحة الراوتر والبحث عن الجهاز ضمن DHCP Leases / Connected Devices.
مثلاً قد يكون عنوان الخادم:
192.168.1.50
استخدم DHCP Reservation
بدلاً من إعداد IP ثابت داخل Linux مباشرة، يمكن أن يكون حجز العنوان من الراوتر DHCP Reservation أسهل للمبتدئ.
بهذه الطريقة سيحصل الخادم دائماً على نفس العنوان. وبعد أن يستقر الخادم، يمكنك لاحقًا استخدام اسم محلي مثل server.home أو DNS محلي بدل حفظ عنوان IP.
الاتصال بالخادم عبر SSH
من جهازك الشخصي:
ssh user@192.168.1.50
إذا نجح الاتصال، فأنت لا تحتاج إلى شاشة أو لوحة مفاتيح موصولة بالخادم معظم الوقت.
استخدم SSH Key
على جهازك الشخصي:
ssh-keygen -t ed25519
اضغط Enter في كل الأسئلة (يمكنك ترك الـ passphrase فارغة).
ثم انسخ المفتاح:
ssh-copy-id user@192.168.1.50
اختبر:
ssh user@192.168.1.50
ذا دخلت بدون كلمة مرور، نجح الأمر.
بعد التأكد، يمكنك تعطيل تسجيل الدخول بكلمة المرور بأمان
افتح إعدادات SSH:
sudo nano /etc/ssh/sshd_config
وتأكد من:
PasswordAuthentication no
PermitRootLogin no
اختبر الإعدادات أولاً:
sudo sshd -t
إذا لم يظهر أي خطأ، تابع.
ثم أعد تشغيل خدمة SSH:
sudo systemctl restart ssh
لا تفعل ذلك قبل التأكد من أن SSH Key يعمل، حتى لا تغلق على نفسك طريقة الدخول الوحيدة.
💡 تلميح أمني إضافي: تغيير منفذ SSH الافتراضي
تغيير منفذ SSH اختياري وليس بديلاً عن الحماية الحقيقية. يمكن تغيير المنفذ لتقليل محاولات المسح العشوائية وتقليل الفوضى في السجلات، لكنه لا يحل مشكلة أمنية بحد ذاته. الأهم هو استخدام SSH Keys، وتعطيل تسجيل الدخول بكلمة المرور بعد اختبار المفتاح، وعدم تعريض SSH للإنترنت عندما لا تكون بحاجة لذلك.
كيفية التغيير:
1- افتح ملف إعدادات SSH:
sudo nano /etc/ssh/sshd_config
2- ابحث عن السطر Port 22، احذف علامة # في بدايته، وغيّر الرقم إلى منفذ آخر (مثلاً Port 2222).
افحص الإعدادات أولًا باستخدام الأمر
sudo sshd -t
إذا لم يظهر أي خطأ، طبق الخطوة التاية
3- احفظ الملف وأعد تشغيل الخدمة:
sudo systemctl restart ssh
4- مهم جداً: اسمح بالمنفذ الجديد في جدار الحماية قبل إغلاق جلسة الاتصال الحالية:
sudo ufw allow 2222/tcp
(اختياري: لحذف السماح القديم)
sudo ufw delete allow 22/tcp
5- عند الاتصال لاحقاً، ستحتاج لتحديد المنفذ يدوياً:
ssh -p 2222 user@192.168.1.50
جدار الحماية
يمكن استخدام UFW كواجهة بسيطة لإعداد قواعد الجدار الناري.
sudo apt install ufw
ثم:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
اعرض الحالة:
sudo ufw status
انتبه إلى IPv6
إذا كان الراوتر ومزود الإنترنت لديهما دعم لـ IPv6، فلا تفترض أن حماية IPv4 تكفي وحدها. يجب أن تكون قواعد جدار الحماية مضبوطة أيضاً لحركة IPv6، حتى لا تصبح الخدمة متاحة من الإنترنت عبر عنوان IPv6 بينما كنت تظن أنك أغلقتها.
الفكرة الأساسية هي:
اسمح فقط بالمنافذ التي تحتاجها فعلاً.
الوصول إلى الخدمات: كيف تفتحها من الهاتف والتلفاز؟
هذه نقطة مهمة جداً للمبتدئ. بعد تثبيت Jellyfin مثلاً، لن تظهر الخدمة تلقائياً على التلفاز. عادة تدخل إليها باستخدام عنوان الخادم والمنفذ.
إذا كان عنوان الخادم:
192.168.1.50
وكان Jellyfin يستخدم المنفذ:
8096
فقد تفتح الخدمة من المتصفح على:
http://192.168.1.50:8096
وبالمثل، قد يكون لكل خدمة منفذ مختلف.
هذه الطريقة ممتازة عندما يكون لديك خدمة أو خدمتان.
لكن ماذا لو أصبح لديك:
- Jellyfin
- Nextcloud
- Vaultwarden
- Grafana
- Home Assistant
- خدمة أخرى؟
هنا يصبح من الأفضل التفكير في Reverse Proxy.
Reverse Proxy: بوابة واحدة لخدمات متعددة
الـ Reverse Proxy هو خادم يستقبل طلباتك ثم يوجهها إلى الخدمة الصحيحة.
بدلاً من حفظ عناوين مثل:
192.168.1.50:8096
192.168.1.50:8080
192.168.1.50:3000
يمكنك لاحقاً استخدام أسماء مثل:
jellyfin.example.com
cloud.example.com
passwords.example.com
ومن أشهر الخيارات:
- Caddy
- nginx
- Traefik
Caddy جذاب للمبتدئ لأنه يبسط كثيراً من إعداد HTTPS والشهادات.
Reverse Proxy ليس فقط لتعدد الخدمات؛ هو أيضًا المكان الطبيعي لتجميع TLS والمصادقة وبعض سياسات الوصول.
Caddy بالفعل يطبق HTTPS تلقائيًا ويجدد الشهادات، وفق توثيقه الحالي.
لكن لا تحتاج إلى Reverse Proxy لمجرد تشغيل خادم منزلي صغير. ابدأ بالطريقة الأبسط، ثم انتقل إليه عندما تزداد الخدمات.
HTTPS والوصول من خارج المنزل
الوصول إلى الخدمة داخل الشبكة المحلية شيء، والوصول إليها من الإنترنت شيء آخر تماماً.
إذا أردت فتح Nextcloud أو خدمة ويب من خارج المنزل، فمن الأفضل استخدام:
- HTTPS.
- Reverse Proxy.
- نطاق Domain.
- شهادة TLS.
- مصادقة قوية.
- تحديثات مستمرة.
يمكن استخدام Caddy أو nginx مع Let’s Encrypt للحصول على شهادات TLS.
لكن لا تفتح المنافذ عشوائياً في الراوتر.
إذا كان هدفك الوصول الشخصي من الهاتف أو الكمبيوتر المحمول، فغالباً يكون Tailscale أو WireGuard أكثر أماناً وبساطة من نشر كل خدمة مباشرة على الإنترنت.
ماذا لو كان لديك CGNAT؟
💡 بعض مزودي الإنترنت يستخدمون Carrier-Grade NAT. ولكن ما هو الــ CGNAT ؟
تخيل أنك تعيش في مبنى سكني كبير. المبنى كله له عنوان بريدي واحد فقط (وهو عنوان IP العام)، وأنت لديك فقط رقم شقتك الداخلي (عنوان IP الخاص مثل 192.168.1.100).
عندما يرسل شخص طرداً من الخارج إلى عنوان المبنى، لا يعرف موظف البريد أي شقة يقصدها إلا إذا كان هناك نظام توجيه داخلي مسبق. مزودو خدمة الإنترنت (ISPs) يستخدمون تقنية CGNAT لتوفير عناوين IP العامة المحدودة، مما يعني أنك لا تملك عنواناً عاماً خاصاً بك.
النتيجة: حتى لو قمت بإعداد فتح المنافذ (Port Forwarding) في الراوتر بشكل صحيح 100%، فلن يعمل، لأن الطلبات تتوقف عند “مدخل المبنى” (مزود الخدمة) ولا تصل إلى جهازك. هنا تصبح أدوات مثل Tailscale مفيدة لأنها لا تعتمد على Port Forwarding التقليدي، ويمكنها إنشاء اتصال مباشر عندما تسمح الشبكة، أو استخدام Relay عند تعذر الاتصال المباشر.
الكهرباء والحرارة والاعتمادية
هناك جانب مهم يتم تجاهله كثيراً. وهو كم يكلف تشغيل الكمبيوتر القديم طوال العام؟
لتقريب الصورة، لنقارن استهلاك الخادم بأجهزة منزلية مألوفة (بافتراض التشغيل 24 ساعة يومياً، 365 يوماً في السنة):
🖥️ كمبيوتر مكتبي (برج) قديم: يستهلك عادةً قدرة قدرها 80–120 واط أثناء التشغيل. هذا يعادل ترك مصباح إنارة قوي أو مروحة سقف تعمل دون انقطاع طوال العام، مما سيظهر بوضوح على فاتورة الكهرباء.
💻 أي لابتوب عادي (حتى لو كان قديماً) أو جهاز Mini PC: يستهلك عادةً قدرة قدرها 15 إلى 30 واط فقط أثناء التشغيل. السبب هو أن مكونات اللابتوب مصممة أصلاً للعمل على البطارية، مما يجعلها موفرة للطاقة بطبيعتها. استهلاكه السنوي يعادل تقريباً استهلاك ثلاجة صغيرة أو أقل!
هذه الأرقام واسعة جدًا وتعتمد بشدة على العتاد والحمل ومزود الطاقة والأقراص وحالة sleep states. إذا اردت ان تحسبها بنفسك استخدم المعادلة التالية:
kWh per year = (W ÷ 1000) × 24 × 365
💡 القاعدة : قبل أن تقرر إبقاء البرج القديم يعمل كخادم، قارن بين تكلفة كهربائه السنوية وسعر شراء جهاز Mini PC مستعمل (مثل Intel NUC أو أجهزة المكتب المصغرة). غالباً ستجد أن الجهاز المصغر أحدث، أسرع، أهدأ، وأرخص في استهلاك الكهرباء على المدى الطويل.
الحرارة
افحص:
- المراوح.
- الغبار.
- المعجون الحراري إذا كان الجهاز قديماً جداً.
- تدفق الهواء.
- حرارة القرص.
يمكنك تثبيت أدوات الحرارة:
sudo apt install lm-sensors
ثم:
sensors
الكمبيوتر المحمول
اللابتوب القديم قد يكون خادماً ممتازاً لأنه يستهلك طاقة قليلة. كما ان بطارية اللابتوب يمكن أن تمنح الخادم وقت تشغيل أثناء انقطاع الكهرباء، ولذلك قد تعمل عمليًا كاحتياط كهربائي صغير. لكنها ليست UPS مخصصًا، ولا ينبغي افتراض أن كل لابتوب سيستمر بالشكل نفسه عند فشل البطارية أو الشاحن. اختبر ذلك فعليًا قبل الاعتماد عليه.
لكن هناك مشكلة محتملة: البطارية القديمة قد تنتفخ عند بقائها موصولة بالكهرباء لفترات طويلة.
راقب البطارية بعناية، وإذا ظهرت علامات انتفاخ أو حرارة غير طبيعية فلا تتجاهلها. وإذا كانت البطارية قديمة جدًا أو منتفخة، لا تستخدمها كـUPS. أزلها واستبدلها أو شغّل الجهاز بدونها وفق تصميم الجهاز.
كذلك لا تغلق غطاء اللابتوب بطريقة تمنع التهوية.
يمكن تعديل إعدادات lid في systemd، لكن تحقق أيضاً من إعدادات BIOS وخيارات النوم والإغلاق.
مثلاً:
sudo nano /etc/systemd/logind.conf
ثم يمكن ضبط:
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
بعد ذلك، قد يلزمك إعادة تشغيل الجهاز بالكامل بدلًا من إعادة تشغيل systemd-logind مباشرةً؛ لأن إعادة تشغيله قد تؤدي إلى إنهاء الجلسة الحالية، خاصةً إذا كنت مسجّل الدخول إلى الجهاز الآن.
انقطاع الكهرباء
إذا كان BIOS يدعم الخيار:
Restore on AC Power Loss
أو:
Power On After AC Loss
فعّله إذا أردت أن يعود الخادم للعمل تلقائياً بعد عودة الكهرباء.
لكن هذا لا يغني عن النسخ الاحتياطي.
أهم الخدمات التي يمكنك تشغيلها
Samba: خادم الملفات المنزلي
Samba من أبسط وأكثر استخدامات الخادم المنزلي فائدة.
يمكنك مشاركة مجلدات الخادم والوصول إليها من:
- Windows.
- Linux.
- macOS.
- بعض أجهزة التلفاز.
- الهواتف باستخدام تطبيقات مناسبة.
على Debian أو Ubuntu:
sudo apt install samba
مثال إنشاء مجلد المشاركة:
sudo mkdir -p /srv/samba/shared
sudo chown $USER:$USER /srv/samba/shared
sudo chmod 755 /srv/samba/shared
إنشاء مستخدم Samba:
sudo smbpasswd -a $USER
(أدخل كلمة مرور خاصة بـ Samba، يُفضل أن تكون مختلفة عن كلمة مرور النظام)
تعديل الإعدادات:
sudo nano /etc/samba/smb.conf
أضف في نهاية الملف:
[Shared]
path = /srv/samba/shared
browseable = yes
read only = no
valid users = @users
force user = yourusername
create mask = 0644
directory mask = 0755
استبدل yourusername باسم المستخدم الحقيقي.
إعادة تشغيل الخدمة:
sudo systemctl restart smbd nmbd
السماح في الجدار الناري (إن وُجد):
sudo ufw allow samba
الوصول من الأجهزة الأخرى:
Windows: \\192.168.1.50\Shared
Linux / macOS: smb://192.168.1.50/Shared
ستحتاج إلى إدخال اسم المستخدم وكلمة مرور Samba عند الاتصال.
Samba الحديثة تستخدم UTF-8 بشكل افتراضي، لذلك لا تبدأ بتغيير الترميز بلا سبب.
لكن إذا وجدت أسماء ملفات عربية مشوّهة — مثل المل٠— والسبب ملفات قديمة أُنشئت أو نُقلت بترميز قديم مثل Windows-1256، يمكنك استخدام أداة convmv لإعادة ترميز أسماء الملفات فقط دون المساس بمحتواها.
تُعدّ convmv آمنة للاستخدام لأنها في وضع الفحص الافتراضي لا تنفّذ أي تغيير، بل تعرض ما ستفعله فقط، ولا تعيد التسمية فعليًا إلا عند إضافة –notest.
عرض ما سيحدث دون تنفيذ:
convmv -f windows-1256 -t utf-8 -r /path/to/share
التنفيذ الفعلي:
convmv -f windows-1256 -t utf-8 -r --notest /path/to/share
مزامنة الملفات Syncthing
إذا كان هدفك مزامنة الملفات بين الكمبيوتر والهاتف أو بين عدة أجهزة، فإن Syncthing خيار ممتاز. وتذكر Syncthing للمزامنة، وليس نظام نسخ احتياطي بحد ذاته.
يمكنك مثلاً مزامنة: حاسوب محمول ↔ خادم منزلي ↔ حاسوب مكتبي
بدون الاعتماد على خدمة سحابية مركزية.
Nextcloud
Nextcloud يحول الخادم إلى سحابة شخصية شبيهة من حيث الفكرة بخدمات التخزين السحابية المعروفة.
يمكن استخدامه للملفات والمشاركة والمزامنة وبعض التطبيقات الأخرى.
لكن لا تبالغ في توقعاتك من جهاز قديم.
على جهاز RAM 2–4GB، ابدأ بخدمات Nextcloud الأساسية، ولا تضف مباشرة:
- Collabora.
- OnlyOffice.
- عشرات التطبيقات.
- خدمات إضافية ثقيلة.
لتحرير مستندات ثقيلة، قد يكون استخدام LibreOffice محلياً مع مزامنة الملفات أكثر ملاءمة للجهاز القديم.
Jellyfin
Jellyfin يحول الجهاز إلى خادم وسائط منزلي.لكن هناك مصطلحان مهمان يجب فهمهما:
Direct Play: الجهاز العميل يستطيع تشغيل الملف كما هو، لذلك لا يحتاج الخادم إلى تحويله.
Transcoding: الخادم يقوم بتحويل الفيديو أو الصوت إلى صيغة أخرى يستطيع الجهاز العميل تشغيلها.
وهنا تظهر أهمية المعالج.
إذا كان التلفاز يستطيع تشغيل الفيديو مباشرة، فقد يعمل Jellyfin بشكل ممتاز حتى على جهاز قديم نسبياً.
أما إذا كان الخادم مضطراً إلى تحويل فيديو 4K أثناء المشاهدة، فقد يصل المعالج إلى 100%.
راقب لوحة Jellyfin أثناء التشغيل: إن ظهر Transcode وليس Direct Play، فالمشكلة قد تكون الصوت لا الفيديو. تحويل صوت DTS أو TrueHD إلى AAC يستهلك المعالج بشدة حتى لو كان الفيديو يُشغَّل مباشرة. قد يكون الفيديو Direct Play بينما يحتاج الصوت إلى تحويل، لذلك لا تنظر فقط إلى كلمة Transcoding؛ راقب تفاصيل Video وAudio في جلسة التشغيل.
Hardware Transcoding
بعض معالجات Intel القديمة تدعم Quick Sync، لكن الدعم يختلف كثيراً حسب الجيل وصيغة الفيديو.
لا تفترض أن أي معالج Intel قديم يستطيع فك ترميز HEVC 10-bit أو كل صيغ 4K.
لا يكفي أن تقول «Intel فيه Quick Sync». يجب معرفة جيل المعالج والـiGPU والـcodec.
مثال: دعم HEVC 10-bit ليس متساويًا بين أجيال Intel. إذا كنت ستستخدم Hardware Acceleration، تأكد من أن المعالج والـ iGPU وبرنامج التشغيل يدعمون الصيغة المطلوبة.
في بيئات Docker قد تحتاج أيضاً إلى تمرير /dev/dri للحاوية وإعطاء المستخدم داخل الحاوية الصلاحيات المناسبة لمجموعة render أو video.
حجب الإعلانات عبر Pi-hole و AdGuard Home
إذا أردت حجب الإعلانات والتتبع على مستوى الشبكة، يمكنك تشغيل:
- Pi-hole.
- AdGuard Home.
وهذه من أفضل الخدمات للأجهزة محدودة الموارد.
ﻻ يمكن تشغيل Pi-hole و AdGuard Home معًا على نفس الجهاز بسهولة، لأن كليهما يحتاج المنفذ 53. اختر واحدًا، أو شغّل الثاني على جهاز/عنوان مختلف. ولا تفتح المنفذ 53 للإنترنت أبدًا؛ خادم DNS مفتوح يُستغل في الهجمات .
Tailscale و WireGuard
إذا أردت الوصول إلى الخادم من خارج المنزل بدون فتح كل خدمة مباشرة للإنترنت، فهذه الأدوات مهمة.
Tailscale يبسط بناء شبكة خاصة فوق WireGuard، وهو خيار مريح جداً للمستخدم المنزلي.
أما استخدام WireGuard مباشرةً فيمنحك تحكماً أكبر، لكنه يحتاج إلى إعداد أكثر.
Vaultwarden
Vaultwarden هو تطبيق خفيف متوافق مع عملاء Bitwarden لتخزين كلمات المرور.
وهو أخف بكثير من تشغيل خادم Bitwarden الرسمي، ولذلك قد يكون مناسباً أكثر لجهاز منزلي محدود الموارد.
لكن لأنه يتعامل مع كلمات المرور، يجب التعامل معه كخدمة حساسة جداً:
- تحديث مستمر.
- كلمة مرور قوية.
- نسخ احتياطي.
- عدم تعريضه للإنترنت بلا حماية مناسبة.
وعموما في الخدمات الحساسة مثل Vaultwarden، لا يكفي التأكد من أن backup file موجود. نفّذ تجربة Restore في بيئة اختبارية أو على جهاز آخر.
Immich
إذا كنت تريد بناء مكتبة صور شخصية شبيهة بخدمات الصور السحابية الحديثة، فإن Immich مشروع جذاب.
Immich مختلف عن Pi-hole وSamba من ناحية الموارد. التوثيق الحالي يضع 6GB RAM كحد أدنى و8GB كخيار موصى به، بينما يمكن تشغيله على جهاز 4GB مع تعطيل ميزات machine learning. لذلك لا أضع Immich ضمن «خدمات 4GB العادية»، بل ضمن المشاريع التي تحتاج جهازًا أقوى قليلًا.
Home Assistant
إذا كان لديك أجهزة منزل ذكية، يمكن أن يصبح الكمبيوتر القديم خادماً لـ Home Assistant.
و إذا كان الجهاز مخصصًا أساسًا لـHome Assistant، فـHome Assistant OS غالبًا أبسط للمبتدئ. أما إذا كان الخادم Linux عامًا وتريد تشغيل Home Assistant بجانب خدمات أخرى، فـContainer خيار منطقي مع تحمل إدارة الحاويات بنفسك
Docker و الحاويات: متى تستخدمها؟
Docker يجعل تثبيت وإدارة الخدمات أسهل بكثير. بدلاً من تثبيت كل برنامج ومكتباته داخل النظام، يمكنك تشغيل التطبيق داخل Container مع بيئته الخاصة. هذا مفيد جداً عندما تريد تشغيل:
- Jellyfin.
- Vaultwarden.
- Immich.
- Uptime Kuma.
- خدمات ويب أخرى.
لكن Docker ليس سحراً.كل حاوية تستهلك موارد، وبعض الخدمات نفسها ثقيلة بغض النظر عن كونها داخل Docker.
إذا كانت الخدمة بسيطة ولها حزمة Debian جيدة، يمكن تثبيتها مباشرة.
إذا كانت الخدمة تُدار أساسًا عبر Compose أو تحتاج عدة مكونات، استخدم Docker من البداية.
إذا كان هذا الخادم سيعمل بشكل دائم، فمن الأفضل تثبيت Docker من مستودع Docker الرسمي لنظام Debian، بدلاً من استخدام سكربت التثبيت السريع الذي يوفره Docker.
سكربت get.docker.com مناسب لتجربة Docker بسرعة، لكنه ليس الطريقة التي يوصي بها Docker للاستخدام المستمر على خادم. لذلك سنستخدم مستودع Docker الرسمي حتى تكون عملية التثبيت والتحديث أكثر وضوحاً.
الطريقة الرسمية الموصى بها من Docker للتثبيت :
ملاحظة: هذه الخطوات خاصة بـ Debian. إذا كنت تستخدم Ubuntu فاتبع صفحة Ubuntu الرسمية، لأن عنوان المستودع مختلف (
linux/ubuntu). وبقية التوزيعات لها صفحاتها الخاصة في توثيق Docker.
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
إضافة المستخدم إلى مجموعة docker لتفادي sudo:
sudo usermod -aG docker $USER
newgrp docker
تنبيه: عضوية المستخدم في مجموعة docker تمنحه صلاحيات قوية على النظام، لذلك لا تعتبرها مجرد طريقة لتجنب كتابة sudo. إذا كان الأمان مهمًا، فهناك أيضًا Docker Rootless Mode، لكنه يحتاج إعدادًا إضافيًا.
الأوامر اليومية (تُنفَّذ من مجلد المشروع):
| الأمر | الوظيفة | متى تستخدمه |
|---|---|---|
docker compose ps | يعرض الحاويات وحالتها (تعمل / متوقفة) | عند الشك أن خدمة لا تعمل، أو للتحقق بعد الإقلاع |
docker compose logs -f | يعرض سجلات الحاوية ويحدّثها مباشرة | لتشخيص سبب الفشل أو متابعة سلوك الخدمة أثناء الاستخدام |
docker compose pull | يجلب أحدث إصدارات الصور من المستودع دون تشغيلها | قبل التحديث، لمعرفة هل توجد نسخة جديدة |
docker compose up -d | ينشئ أو يحدّث الحاويات ويشغّلها في الخلفية (-d = Detached) | بعد pull لتطبيق التحديث، أو بعد تعديل ملف docker-compose.yml |
docker compose down | يوقف الحاويات ويحذفها (مع الشبكة) مع بقاء البيانات في المجلدات | لإيقاف خدمة نهائيًا أو إعادة بناء البيئة من جديد |
ملاحظة:
downلا يحذف البيانات المخزّنة فيvolumesأو المجلدات المرتبطة، لكنه يحذف الحاويات نفسها. أماdocker compose down -vفيحذف volumes أيضًا . استخدمه بحذر.
متى لا تستخدم Docker؟
إذا كان الجهاز:
- 32-bit.
- RAM منخفضة جداً.
- القرص صغير جداً.
- الخدمة بسيطة ويمكن تثبيتها مباشرة بسهولة.
فلا تضف Docker لمجرد أنك تستطيع ذلك.
مثال Docker Compose: تشغيل Jellyfin
الحاوية لا تعمل بالضرورة كمستخدم Linux نفسه. لذلك يجب أن تفهم UID/GID وصلاحيات الملفات عندما تستخدم bind mounts.
1) تأكد أن رقم مستخدمك هو 1000 فعلًا:
id -u
id -g
إن ظهر رقم مختلف، استبدل 1000:1000 في الملف بالقيم التي ظهرت لك.
2) أنشئ مجلد الخدمة ومجلد الإعدادات:
mkdir -p ~/jellyfin-server/config
cd ~/jellyfin-server
مهم: لا تترك Docker ينشئ مجلد
configبنفسه، لأنه سيملكهrootوستفشل Jellyfin في الكتابة داخله.
3) أنشئ مجلد الوسائط إن لم يكن موجودًا:
sudo mkdir -p /srv/media
sudo chown -R $USER:$USER /srv/media
4) أنشئ ملف docker-compose.yml:
nano docker-compose.yml
5) الصق هذا المحتوى داخل الملف:
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: "1000:1000"
volumes:
- ./config:/config
- ./cache:/cache
- /srv/media:/media:ro
ports:
- "8096:8096"
restart: unless-stopped
للحفظ والخروج من nano: اضغط Ctrl + O ثم Enter، ثم Ctrl + X.
للمشاريع التي تريد استقرارًا أعلى، يمكن تثبيت إصدار محدد بدل تتبع latest، لكن ذلك يتطلب إدارة تحديثات أكثر وقراءة ملاحظات الإصدار.
6) شغّل الخدمة:
docker compose up -d
ماذا يحدث الآن؟ يقرأ Docker الملف، يحمّل صورة Jellyfin، ينشئ الحاوية، ويشغّلها في الخلفية (-d تعني Detached mode).
7) تحقق من أنها تعمل:
docker compose ps
docker compose logs -f jellyfin
ثم افتح المتصفح على: http://UrIP:8096
للتحديث لاحقًا:
docker compose pull
docker compose up -d
انتبه إلى التخزين
Docker يمكن أن يملأ القرص بسبب:
- Images.
- Containers.
- Volumes.
- Logs.
لذلك راقب المساحة:
df -h
ويمكن استخدام:
docker system df
لرؤية استهلاك Docker.
أما:
docker system prune
فهو أداة تنظيف مؤقتة، وليس حلاً لمشكلة امتلاء القرص المتكررة. قبل حذف أي شيء، افهم ما الذي سيُحذف.
تحذير مهم: Docker وUFW
هذه نقطة أمنية مهمة.
لا تفترض أن:
sudo ufw enable
يعني أن كل منفذ ستنشره من Docker أصبح محمياً تلقائياً.
Docker يقوم بتعديل قواعد الشبكة وiptables/nftables بطريقة قد تجعل المنافذ المنشورة متاحة رغم قواعد UFW التي تتوقعها.
لذلك:
لا تنشر منافذ Docker إلى
0.0.0.0بلا مراجعة، ولا تعتبر UFW وحده حماية كافية لمنافذ Docker. مثال:ports: 127.0.0.1:8096:8096
إذا كانت الخدمة مطلوبة داخل الخادم أو عبر Reverse Proxy فقط، صمّم شبكة Docker وفق ذلك بدلاً من نشر كل منفذ للخارج.
وهذه واحدة من النقاط التي تستحق القراءة عنها قبل تحويل الخادم إلى مشروع كبير.
الأمان: لا تجعل خادمك باباً مفتوحاً للإنترنت
الخادم المنزلي ليس آمناً لمجرد أنه داخل المنزل.
القواعد الأساسية
- حدّث النظام باستمرار.
- استخدم SSH Keys.
- عطّل SSH Password Login بعد التأكد من المفتاح.
- لا تستخدم Root لتشغيل الخدمات.
- افتح أقل عدد ممكن من المنافذ.
- استخدم كلمات مرور قوية.
- لا تنشر الخدمات الحساسة مباشرة إلى الإنترنت دون سبب.
- استخدم Tailscale أو WireGuard عندما يكون ذلك مناسباً.
- استخدم HTTPS لخدمات الويب الخارجية.
- راقب الأقراص والسجلات.
- احتفظ بنسخ احتياطية.
التحديثات التلقائية
على Debian وUbuntu:
sudo apt install unattended-upgrades
ثم:
sudo dpkg-reconfigure -plow unattended-upgrades
يمكنك مراجعة الإعدادات هنا:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
التحديثات التلقائية مفيدة، لكن لا تجعلها بديلاً عن النسخ الاحتياطي أو اختبار الخدمات بعد التحديثات الكبيرة.
Fail2ban
إذا كان لديك خدمات تعرض SSH أو خدمات ويب للإنترنت، يمكن استخدام Fail2ban لتقليل محاولات تسجيل الدخول المتكررة.
لكن الأفضل دائماً تقليل التعرض للإنترنت من الأساس، وليس الاعتماد على Fail2ban كدرع سحري.
النسخ الاحتياطي: الخادم ليس نسخة احتياطية
هذه من أهم قواعد المشروع كله.
إذا كانت صورك موجودة على الخادم فقط، فأنت لم تنشئ نظام نسخ احتياطي.
إذا كان لديك قرصان داخل نفس الجهاز، وما زال كلاهما معرضاً للحريق أو السرقة أو عطل مزود الطاقة، فأنت أيضاً لم تحل المشكلة بالكامل.
قاعدة 3-2-1
فكرة بسيطة:
- 3 نسخ من البيانات.
- على وسيلتي تخزين مختلفتين.
- نسخة واحدة على الأقل خارج الجهاز أو خارج المنزل.
يمكن استخدام:
- rsync.
- BorgBackup.
- Restic.
مثال بسيط باستخدام rsync
مثلاً:
#!/bin/bash
SOURCE="/srv/important-data/"
DEST="/mnt/backup/important-data/"
rsync -a --delete "$SOURCE" "$DEST"
يمكن حفظه مثلاً باسم:
/usr/local/bin/backup.sh
ثم جعله قابلاً للتنفيذ:
sudo chmod +x /usr/local/bin/backup.sh
تنبيه: هذا المثال يعكس المصدر إلى الوجهة. إذا حذفت ملفًا بالخطأ في المصدر فقد تحذفه –delete من النسخة أيضًا. لذلك هذا المثال مناسب للمزامنة/المرآة، وليس بديلًا عن backup بإصدارات متعددة.
الجدولة
لجدولة نسخة يومية في الثانية صباحاً:
crontab -e
ثم:
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
هذا المثال بسيط، لكنه ليس نظام نسخ احتياطي متقدماً.
في البيانات المهمة، أدوات مثل Restic أو Borg توفر ميزات أفضل مثل النسخ المتكرر، الاحتفاظ بإصدارات متعددة، والتشفير.
والأهم من كل ذلك:
اختبر استعادة النسخة الاحتياطية.
النسخة التي لم تختبر استعادتها هي مجرد أمل.
المراقبة والصيانة
الخادم ليس جهازاً تثبته ثم تنساه لسنوات.
راقب الموارد
يمكنك البدء بـ:
htop
وللذاكرة:
free -h
ولمساحة التخزين:
df -h
ولمعرفة استهلاك Docker:
docker system df
راقب صحة الأقراص
ثبت:
sudo apt install smartmontools
واستخدم smartctl لفحص الأقراص.
يمكن أيضاً إعداد smartd للتنبيهات الدورية.
راقب الحرارة
sensors
لا تنس سجلات النظام
إلى جانب Docker، يحتفظ systemd-journald بسجلات قد تكبر مع الوقت.
يمكن تحديد حد للاستخدام في:
/etc/systemd/journald.conf
مثلاً:
SystemMaxUse=500M
ثم إعادة تشغيل journald:
sudo systemctl restart systemd-journald
استخدم قيمة مناسبة لمساحة جهازك.
عند استخدام Docker، لا تنسَ أن النسخة الاحتياطية ليست مجلد الوسائط فقط. احتفظ أيضًا بملفات Compose، ملفات .env، إعدادات الخدمات، وقواعد البيانات بالطريقة التي توصي بها كل خدمة.
أدوات مراقبة إضافية
إذا أصبح المشروع أكبر، يمكنك استخدام أدوات مثل:
- Uptime Kuma لمراقبة توفر الخدمات.
- Netdata لمراقبة الموارد.
- Cockpit لإدارة بعض جوانب النظام.
- Grafana وPrometheus للمشاريع الأكثر تقدماً.
لكن لا تبدأ بكل هذه الأدوات في اليوم الأول.
أكثر المشاكل شيوعاً وحلولها
الكمبيوتر ما زال بطيئاً
إذا ثبتت سطح مكتب كامل على جهاز ضعيف، ثم اشتكيت من البطء، فالمشكلة قد تكون التصميم وليس لينكس نفسه.
الحل:
- تثبيت Server/Netinstall.
- عدم تثبيت GNOME أو KDE.
- استخدام SSH.
لا أعرف عنوان IP
ابحث عنه في:
- صفحة DHCP في الراوتر.
- أو باستخدام:
ip a
لا أستطيع الاتصال عبر SSH
تحقق من:
- كابل الشبكة.
- عنوان IP.
- أن SSH يعمل.
- جدار الحماية.
- اتصال الجهاز بالشبكة.
Jellyfin يستهلك 100% من المعالج
غالباً هناك Transcoding.
ابدأ بمحاولة استخدام Direct Play.
إذا كان التلفاز لا يدعم صيغة معينة، قد يكون من الأفضل استخدام ملفات بصيغ متوافقة أكثر بدلاً من إجبار جهاز قديم على تحويلها أثناء المشاهدة.
Jellyfin يتوقف أو يقطع الفيديو
لا تفترض أن المشكلة في سرعة الخادم وحدها.
قد يكون السبب:
- Transcoding.
- Wi-Fi.
- معدل نقل الفيديو.
- عدم دعم التلفاز للصيغة.
Nextcloud بطيء جداً
على جهاز 2–4GB:
- ابدأ بالخدمات الأساسية.
- لا تضف Office Suite ثقيل.
- لا تثبت عشرات التطبيقات.
- راقب الــ RAM و CPU و Disk I/O.
Docker ملأ القرص
تحقق:
docker system df
ثم افحص:
df -h
راقب أيضاً Logs وVolumes.
إذا تكرر الأمر، فالمشكلة تحتاج إلى ضبط إدارة التخزين والسجلات، وليس مجرد تنفيذ prune كل أسبوع.
Samba يعرض أسماء عربية مشوهة
Samba الحديثة تستخدم UTF-8 افتراضياً.
إذا كانت الملفات نفسها تحمل أسماء بترميز خاطئ بسبب نقل قديم، فالمشكلة قد تكون في أسماء الملفات وليس في Samba.
يمكن استخدام convmv لمعالجة أسماء الملفات عند الحاجة، بعد أخذ نسخة احتياطية وتجربة الأمر على مجموعة صغيرة أولاً.
ولا تستخدم SMBv1 لمجرد حل مشكلة توافق قديمة إلا إذا كنت تعرف المخاطر جيداً.
Wake-on-LAN لا يعمل من خارج المنزل
Wake-on-LAN ليس سحراً.
إيقاظ الجهاز من داخل الشبكة المحلية قد يكون سهلاً، لكن إيقاظه من خارج المنزل قد يحتاج إلى:
- جهاز آخر يعمل داخل الشبكة لإرسال الحزمة.
- أو إعدادات إضافية في الراوتر والشبكة.
لذلك لا تعتمد عليه كحل وحيد للوصول إلى خادم مغلق.
Port Forwarding لا يعمل
إذا كنت خلف CGNAT، فقد لا يعمل Port Forwarding مهما كانت إعدادات الراوتر صحيحة.
استخدم VPN مثل Tailscale أو WireGuard في الحالات المناسبة.
انقطعت الكهرباء أثناء تحديث النظام
قد ينجو ext4 من المشكلة بعد فحص نظام الملفات، لكن لا تعتمد على ذلك.
الأفضل:
- UPS إن كان مناسباً.
- بطارية اللابتوب إن كانت سليمة.
- نسخ احتياطية خارج الخادم.
بدأت المنافذ تتعرض لمحاولات اتصال
إذا نشرت SSH أو خدمة ويب مباشرة على الإنترنت، فمن الطبيعي أن تبدأ محاولات المسح والهجمات الآلية.
الحل الأفضل هو تقليل التعرض:
- لا تنشر الخدمة إن لم تكن بحاجة.
- استخدم VPN.
- استخدم SSH Keys.
- حدّث النظام.
- استخدم Firewall.
- استخدم HTTPS.
- استخدم Fail2ban عند الحاجة.
متى يكون شراء جهاز جديد أفضل من إعادة استخدام القديم؟
إعادة استخدام الجهاز القديم فكرة ممتازة، لكنها ليست دائماً الخيار الأفضل.
قد يكون شراء Mini PC مستعمل أو جهاز منخفض الاستهلاك أفضل إذا كان الكمبيوتر القديم:
- يستهلك كهرباء كثيرة.
- يصدر ضوضاء عالية.
- ترتفع حرارته.
- يحتوي على قرص يحتضر.
- يستخدم معمارية 32-bit.
- يحتاج إلى RAM لا تستطيع توفيرها.
- يحتاج إلى Transcoding طوال الوقت.
- سيشغل عدة VMs ثقيلة.
- يحتاج إلى ترقيات كثيرة.
- أو أصبحت تكلفة تشغيله وصيانته أعلى من شراء جهاز أحدث وأكثر كفاءة.
خطة عملية: حوّل جهازك إلى خادم في عطلة نهاية أسبوع
لا تحاول بناء السحابة المنزلية النهائية من أول يوم.
ابدأ بهذه الخطة:
اليوم الأول: العتاد والنظام
- اعرف CPU و RAM ونوع المعمارية.
- تأكد أن الجهاز 64-bit إذا كنت تريد Docker وخدمات حديثة.
- اختبر RAM.
- افحص القرص باستخدام SMART.
- نظف المراوح.
- تأكد من وجود Ethernet.
- افحص استهلاك الكهرباء إن أمكن.
- ثبّت Debian Stable أو Ubuntu Server LTS.
- لا تثبت Desktop Environment.
- ثبّت SSH.
اليوم الثاني: الأساسيات
- احجز IP ثابتاً من الراوتر.
- اختبر SSH.
- أنشئ SSH Key.
- عطّل SSH Password Login بعد اختبار المفتاح.
- فعّل UFW.
- فعّل التحديثات الأمنية التلقائية.
- ثبت
smartmontoolsوlm-sensors. - ثبّت خدمة واحدة فقط.
- اختبر الوصول إليها من الهاتف أو التلفاز.
- أنشئ نسخة احتياطية.
- جرّب استعادة ملف من النسخة الاحتياطية.
بعد نجاح ذلك
أضف الخدمات واحدة تلو الأخرى. مثلاً:
المرحلة 1
Samba
المرحلة 2
Syncthing
المرحلة 3
Jellyfin
ثم، إذا كان الجهاز مناسباً:
المرحلة 4
Docker
زائد الخدمات إضافية
ثم لاحقاً:
Reverse Proxy + HTTPS
بهذه الطريقة، إذا حدثت مشكلة، ستعرف تقريباً أي تغيير تسبب فيها.
قائمة التحقق النهائية
قبل أن تعتبر الخادم جاهزاً:
العتاد
- المعالج مناسب للخدمات المطلوبة.
- الجهاز 64-bit إذا كنت تحتاج Docker وخدمات حديثة.
- RAM مستقرة.
- القرص مفحوص.
- يوجد SSD للنظام إن أمكن.
- المراوح نظيفة.
- الحرارة طبيعية.
- Ethernet متاح.
- استهلاك الكهرباء مقبول.
النظام
- Debian Stable أو Ubuntu Server LTS أو نظام مناسب للمهمة.
- لا توجد واجهة رسومية غير ضرورية.
- SSH يعمل.
- IP ثابت أو DHCP Reservation.
- التحديثات مفعلة.
الأمان
- SSH Key يعمل.
- تسجيل الدخول بكلمة المرور معطل بعد الاختبار.
- Root Login معطل.
- Firewall مفعل.
- المنافذ المفتوحة محدودة.
- لا توجد خدمة منشورة على الإنترنت دون سبب.
- HTTPS مستخدم للخدمات الخارجية.
- Fail2ban أو VPN مستخدم عند الحاجة.
التخزين والنسخ الاحتياطي
- بيانات النظام منفصلة قدر الإمكان عن البيانات المهمة.
- يوجد Backup مستقل.
- توجد نسخة خارج الجهاز.
- تم اختبار Restore فعلياً.
- Docker Logs لا تملأ القرص.
- journald مضبوط بشكل معقول.
التشغيل اليومي
- تستطيع الوصول إلى الخادم عبر SSH.
- تعرف عنوان IP الخاص به.
- تعرف كيف تعيد تشغيل خدمة.
- تعرف كيف تفحص RAM وCPU.
- تعرف كيف تفحص مساحة القرص.
- تعرف كيف تفحص صحة الأقراص.
- لديك طريقة واضحة لاستعادة البيانات إذا تعطل القرص.