مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
تشخيص وإصلاح مشاكل بدء الخدمات بعد إعادة تشغيل الخادم: systemctl، الخدمات الفاشلة، تحليل سجلات الإقلاع وتكوين systemd.
بعد إعادة تشغيل الخادم، قد لا تبدأ بعض الخدمات تلقائيًا، مما يسبب توقفًا وانقطاعًا في الخدمة. يغطي هذا الدليل كيفية تشخيص وإصلاح مشاكل بدء الخدمات بعد إعادة التشغيل.
# قائمة جميع الخدمات الفاشلة
sudo systemctl list-units --type=service --state=failed
# فحص حالة خدمة محددة
sudo systemctl status اسم_الخدمة
# عرض جميع الخدمات وحالاتها
sudo systemctl list-units --type=service --all
# عرض سجلات الإقلاع الحالية
journalctl -b
# عرض سجلات الإقلاع السابقة
journalctl -b -1
# التصفية حسب الخدمة
journalctl -b -u اسم_الخدمة
# عرض الأخطاء فقط
journalctl -b -p err
# تحليل وقت الإقلاع
systemd-analyze
# ترتيب بدء الخدمات
systemd-analyze blame
# السلسلة الحرجة
systemd-analyze critical-chain
systemd-analyze blame يُظهر أي الخدمات استغرقت أطول وقت للبدء. هذا يساعد في تحديد الاختناقات في عملية الإقلاع.
# تمكين الخدمة عند الإقلاع
sudo systemctl enable اسم_الخدمة
# تمكين وبدء فورًا
sudo systemctl enable --now اسم_الخدمة
# التحقق مما إذا كانت الخدمة ممكّنة
systemctl is-enabled اسم_الخدمة
# قائمة جميع الخدمات الممكّنة
systemctl list-unit-files --type=service --state=enabled
sudo systemctl enable ssh
sudo systemctl enable nginx
sudo systemctl enable apache2
sudo systemctl enable mysql
sudo systemctl enable docker
sudo systemctl enable fail2ban
# عرض تبعيات الخدمة
systemctl list-dependencies اسم_الخدمة
# التبعيات العكسية
systemctl list-dependencies --reverse اسم_الخدمة
# عرض ملف وحدة الخدمة
systemctl cat اسم_الخدمة
[Unit]
Description=تطبيقي
After=network.target mysql.service
Requires=mysql.service
Wants=redis.service
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/start.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
التوجيهات الرئيسية:
systemd-analyze time
systemd-analyze blame | head -20
systemd-analyze critical-chain
systemd-analyze plot > boot-chart.svg
إذا كان وقت الإقلاع طويلاً جدًا، فكر في تعطيل الخدمات غير الضرورية بأمر sudo systemctl disable اسم_الخدمة.
# /etc/systemd/system/myapp.service
[Unit]
Description=تطبيق مخصص
After=network.target
[Service]
Type=simple
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
sudo systemctl status myapp
journalctl -u اسم_الخدمة -n 50 --no-pager
systemctl cat اسم_الخدمة
ls -la /المسار/إلى/الملف
[Unit]
After=network-online.target
Wants=network-online.target
systemctl show اسم_الخدمة -p NRestarts
journalctl -u اسم_الخدمة --since "5 minutes ago"
sudo systemctl stop اسم_الخدمة
sudo systemctl reset-failed اسم_الخدمة
مشاكل بدء الخدمات بعد إعادة التشغيل شائعة لكن يمكن منعها بسهولة. تأكد من تمكين الخدمات الحرجة بأمر systemctl enable، واضبط التبعيات الصحيحة في ملفات الوحدة، وتحقق بانتظام من سجلات الإقلاع بحثًا عن أخطاء.
استخدم sudo systemctl list-units --type=service --state=failed لقائمة الخدمات الفاشلة. journalctl -b -p err يُظهر الأخطاء أثناء الإقلاع.
مكّن الخدمة بأمر sudo systemctl enable اسم_الخدمة. تحقق بأمر systemctl is-enabled اسم_الخدمة.
تحقق من السجلات بأمر journalctl -u اسم_الخدمة -n 50. قد تكون هناك مشاكل في التبعيات أو التكوين أو الصلاحيات.
حدد أبطأ الخدمات بأمر systemd-analyze blame. عطّل الخدمات غير الضرورية بأمر systemctl disable.
أنشئ ملف خدمة systemd، اضبط Type=oneshot، حدد مسار السكريبت في ExecStart ومكّنه بأمر systemctl enable.
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.