أوامر الشبكة: تشخيص الاتصال ومراقبة الحركة
اختبار الاتصال: ping و traceroute
الشبكة هي العمود الفقري الذي يربط أجهزة PLC والمستشعرات بخوادم SCADA. أدوات التشخيص ضرورية لحل مشاكل الاتصال بسرعة.
ping -c 5 192.168.1.100 # إرسال 5 حزم
ping -c 3 -W 2 10.0.1.50 # مهلة انتظار 2 ثانية
النتائج المهمة: time (زمن الاستجابة)، packet loss (نسبة الفقدان).
traceroute -n 192.168.1.100 # تتبع مسار الحزم (بدون DNS)
mtr -r -c 10 192.168.1.100 # تقرير مفصّل (ping + traceroute)
فحص المنافذ والاتصالات: ss و netstat
ss -tuln # المنافذ المفتوحة (TCP + UDP)
ss -tulnp # مع اسم البرنامج (يحتاج sudo)
ss -t state established # الاتصالات النشطة
الخيارات: -t TCP، -u UDP، -l listening، -n أرقام فقط، -p اسم العملية.
ss -tlnp | grep 502 # هل خدمة Modbus تعمل؟
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn # اتصالات لكل IP
تحميل البيانات: curl و wget
curl http://192.168.1.100:8080/api/status # طلب GET
curl -o firmware.bin http://192.168.1.100/firmware/latest # تحميل ملف
# إرسال بيانات JSON
curl -X POST http://localhost:3000/api/readings \
-H "Content-Type: application/json" \
-d '{"sensor": "temp_01", "value": 72.5}'
curl -I http://192.168.1.100:8080/health # رأس الاستجابة فقط
curl --connect-timeout 5 http://192.168.1.100:502/ # مع مهلة
wget http://192.168.1.100/logs/daily_report.csv # تحميل بسيط
إعدادات الشبكة: ip addr و ip route
ip addr show # كل واجهات الشبكة
ip -4 addr show eth0 # IPv4 لواجهة محددة
ip route show # جدول التوجيه
ip route get 192.168.10.1 # مسار الوصول لعنوان محدد
cat /etc/resolv.conf # خوادم DNS
nslookup scada-server.factory.local # تحليل اسم لعنوان
nc -zv 192.168.1.100 502 # فحص منفذ Modbus
nc -zv 192.168.1.100 80-8080 # فحص مجموعة منافذ
التقاط الحزم: tcpdump
أداة تشخيص متقدمة تلتقط حزم الشبكة الفعلية.
sudo tcpdump -i eth0 host 192.168.1.100 # حزم من/إلى عنوان
sudo tcpdump -i eth0 port 502 # حزم Modbus TCP
sudo tcpdump -i eth0 port 502 -w modbus.pcap # حفظ في ملف
sudo tcpdump -i eth0 -c 100 host 192.168.1.100 # 100 حزمة فقط
sudo tcpdump -i eth0 -X port 502 -c 10 # عرض المحتوى
# مرشحات متقدمة
sudo tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0' # محاولات اتصال
sudo tcpdump -i eth0 net 192.168.1.0/24 # شبكة فرعية كاملة
ملاحظة عن Wireshark
إذا كنت بحاجة لتحليل مرئي متقدم، يمكنك فتح ملفات .pcap في Wireshark على جهازك المحلي:
# التقاط على الخادم وتحميل الملف
sudo tcpdump -i eth0 port 502 -w /tmp/capture.pcap -c 500
scp operator@server:/tmp/capture.pcap ./
مثال عملي: تشخيص انقطاع اتصال بين PLC وخادم SCADA
سيناريو: PLC على 192.168.1.100 توقف عن إرسال البيانات.
# 1. اختبار الوصول
ping -c 3 192.168.1.100
# 2. تتبع المسار إذا فشل ping
traceroute -n 192.168.1.100
# 3. فحص الشبكة المحلية
ip addr show eth0
# 4. فحص منفذ Modbus
nc -zv -w 3 192.168.1.100 502
# 5. التحقق من الخدمة المحلية
ss -tlnp | grep 502
# 6. التقاط حزم للتحليل
sudo tcpdump -i eth0 host 192.168.1.100 and port 502 -c 20
# 7. فحص الجدار الناري
sudo iptables -L -n | grep 502
# 8. فحص السجل
tail -50 /var/log/scada/modbus_errors.log
الخلاصة
تعلمت في هذا الدرس أدوات تشخيص الشبكة: ping وtraceroute للاتصال، ss للمنافذ، curl لـ APIs، وtcpdump لتحليل الحزم. هذه الأدوات ضرورية لتشخيص مشاكل الاتصال بين أجهزة PLC وخوادم SCADA في البيئات الصناعية.