الفصل 7.1 - واجهات الشبكة
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم واجهات الشبكة في لينكس
- تكوين الواجهات باستخدام ip و ifconfig
- إدارة عناوين IP
- فهم ملفات تكوين الشبكة
- تفعيل/تعطيل الواجهات
واجهات الشبكة
أنواع الواجهات
الأنواع:
- eth0, eth1: واجهات إيثرنت مادية
- wlan0: واجهة واي فاي
- lo: حلقة العودة (127.0.0.1)
- virbr0, veth: واجهات افتراضية (VM، حاويات)
الأوامر الأساسية
ip - الأمر الحديث
# عرض جميع الواجهات
ip addr show
ip a
ip address
# عرض واجهة محددة
ip addr show eth0
# عرض الواجهات النشطة فقط
ip link show up
# إحصائيات
ip -s link show
ifconfig - الأمر الكلاسيكي
# عرض جميع الواجهات
ifconfig -a
# عرض واجهة محددة
ifconfig eth0
# تثبيت إذا لزم الأمر (net-tools)
sudo apt install net-tools # Ubuntu/Debian
تكوين IP
إضافة عنوان IP
# باستخدام ip
sudo ip addr add 192.168.1.100/24 dev eth0
# باستخدام ifconfig
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# التحقق
ip addr show eth0
إزالة عنوان IP
# باستخدام ip
sudo ip addr del 192.168.1.100/24 dev eth0
# باستخدام ifconfig
sudo ifconfig eth0 0.0.0.0
عناوين IP متعددة
# إضافة عدة عناوين IP على واجهة
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip addr add 192.168.1.101/24 dev eth0
# عرض جميع عناوين IP
ip addr show eth0
تفعيل/تعطيل الواجهات
باستخدام ip
# تفعيل
sudo ip link set eth0 up
# تعطيل
sudo ip link set eth0 down
# عرض الحالة
ip link show eth0
باستخدام ifconfig
# تفعيل
sudo ifconfig eth0 up
# تعطيل
sudo ifconfig eth0 down
التكوين الدائم
أوبونتو/ديبيان (Netplan)
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
# أو ثابت:
# addresses:
# - 192.168.1.100/24
# gateway4: 192.168.1.1
# nameservers:
# addresses:
# - 8.8.8.8
# - 8.8.4.4
تطبيق:
sudo netplan apply
sudo netplan try # اختبار مع التراجع
ريد هات/سينت أو إس (NetworkManager)
# ملف: /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
إعادة التشغيل:
sudo systemctl restart NetworkManager
التكوين اليدوي (systemd-networkd)
# /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4
معلومات الواجهة
تفاصيل كاملة
# باستخدام ip
ip -d link show eth0 # تفاصيل
ip -s -s link show eth0 # إحصائيات مفصلة
# باستخدام ethtool (تثبيت إذا لزم الأمر)
sudo apt install ethtool
ethtool eth0 # معلومات الأجهزة
ethtool -S eth0 # إحصائيات
MTU
# عرض MTU
ip link show eth0 | grep mtu
# تغيير MTU
sudo ip link set eth0 mtu 1500
أمثلة عملية
تكوين ثابت
#!/bin/bash
# سكربت تكوين الشبكة
INTERFACE="eth0"
IP="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
# تكوين IP
sudo ip addr add $IP/24 dev $INTERFACE
# تفعيل الواجهة
sudo ip link set $INTERFACE up
# إضافة مسار افتراضي
sudo ip route add default via $GATEWAY
التحقق
#!/bin/bash
# التحقق من تكوين الشبكة
echo "=== الواجهات ==="
ip addr show
echo "=== المسارات ==="
ip route show
echo "=== الاتصالات ==="
ss -tuln
ملخص
في هذا الفصل، تعلمت:
الواجهات: eth0، wlan0، lo، واجهات افتراضية
الأوامر: ip (حديث)، ifconfig (كلاسيكي)
التكوين: IP، netmask، التفعيل/التعطيل
الدائم: Netplan (أوبونتو)، NetworkManager (ريد هات)، systemd-networkd
المعلومات: ip -d، ethtool للتفاصيل
العملي: سكربتات التكوين والتحقق
الخطوات التالية
الفصل 7.2: التوجيه وجداول التوجيه
الفصل 7.3: DNS وحل الأسماء
تم إنشاء الفصل في: ديسمبر 2024