ماذا يفعل
الأمر ip يتكلم مباشرة مع نواة لينكس (kernel). يعرض الشبكة كما تعمل الآن بالضبط: كل عنوان وكل مسار وحالة كل بطاقة. الجميع يستطيع القراءة، وتحتاج صلاحية root للتغيير.
التغييرات التي تتم بـ ip مؤقتة. تختفي بعد إعادة التشغيل أو عندما يضبط NetworkManager البطاقة من جديد. استخدم ip للنظر والاختبار، واستخدم nmcli للإعدادات التي يجب أن تبقى.
الأمر ip يحل محل الأدوات القديمة ifconfig و route و arp. كل جزء من الشبكة هو كائن (object): address و link و route و neigh وغيرها. يمكن اختصار الكائنات والأوامر: ip a = ip address show، و ip r = ip route show.
طريقة الكتابة
ip [OPTIONS] OBJECT { COMMAND | help }
ip address { show | add | del | flush } [ dev IFNAME ] ...
ip link { show | set | add | del } [ dev IFNAME ] ...
ip route { show | get | add | del | replace | flush } ...
ip neigh { show | add | del | flush } ...الأجزاء الرئيسية
address(a,addr)- عناوين IPv4 و IPv6 على البطاقات. show و add و del و flush.
link(l)- بطاقات الشبكة نفسها: الحالة up أو down، وعنوان MAC، و MTU، والنوع.
route(r)- جدول التوجيه: البوابة الافتراضية والمسارات الأخرى. show و get و add و del.
neigh(n,neighbour)- الجيران: جدول IP إلى MAC (ARP لـ IPv4 و NDP لـ IPv6).
rule(ru)- قواعد التوجيه حسب السياسة: أي جدول توجيه لأي حركة.
netns- نطاقات أسماء الشبكة (namespaces) التي تستخدمها الحاويات. list و add و exec و del.
monitor- متابعة تغييرات العناوين والروابط والمسارات مباشرة.
maddress- عناوين البث المتعدد (multicast).
tunnel,tuntap- الأنفاق (GRE و IPIP) وأجهزة TUN/TAP للشبكات الخاصة VPN.
xfrm- إعدادات IPsec.
الخيارات 34
الأكثر استخدامًا
المخرجات
العمل
كلمات تُستخدم مع address و link و route
لا يوجد شيء يطابق هذا الفلتر.
أمثلة 15
$ مستخدم عادي# بصلاحية root (أو مع sudo)
1عرض كل العناوين على كل البطاقات
ip a ip -br -c a lo UNKNOWN 127.0.0.1/8 ::1/128 enp1s0 UP 192.168.122.10/24 fe80::5054:ff:fe3a:7c01/64الخيار -br يعرض سطرًا واحدًا لكل بطاقة. هذا أسرع فحص لحالة خادم جديد.
2عرض عنوان IPv4 لبطاقة واحدة فقط
ip -4 -o addr show dev enp1s0 | awk '{print $4}' 192.168.122.10/24الخيار -o يضع كل عنوان في سطر، فيستطيع awk أخذ الحقل الرابع. مناسب للسكربتات.
3معرفة البوابة الافتراضية
ip route show default default via 192.168.122.1 dev enp1s0 proto static metric 100عدم وجود سطر default يعني أن الخادم لا يصل إلى الشبكات الأخرى.
4معرفة المسار وعنوان المصدر لوجهة واحدة
ip route get 10.20.5.7 10.20.5.7 via 192.168.122.254 dev enp1s0 src 192.168.122.10 uid 1000مفيد جدًا عندما يكون للخادم بطاقتان أو VPN: ترى البطاقة والعنوان الذي تخرج منه الحركة.
5فحص البطاقة بحثًا عن الأخطاء والحزم المفقودة
ip -s -h link show enp1s0زيادة الأخطاء أو الحزم المفقودة تعني كابلًا سيئًا أو تعريفًا (driver) سيئًا أو ذاكرة ممتلئة. قارن بين تشغيلين بينهما دقيقة.
6عرض عناوين MAC لكل البطاقات
ip -br link lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> enp1s0 UP 52:54:00:3a:7c:01 <BROADCAST,MULTICAST,UP,LOWER_UP>عنوان MAC مطلوب لحجوزات DHCP ولبعض تراخيص البرامج.
7إضافة عنوان اختبار لبضع دقائق (مؤقت)
ip addr add 192.168.122.50/24 dev enp1s0 ip addr del 192.168.122.50/24 dev enp1s0مناسب لاختبار سريع. NetworkManager أو إعادة التشغيل سيحذفه على أي حال. للعنوان الثابت استخدم nmcli.
8إضافة مسار لاختبار (مؤقت)
ip route add 10.30.0.0/16 via 192.168.122.254 dev enp1s0 ip route del 10.30.0.0/16اختبر أولًا بـ ip. إذا نجح احفظه بالأمر
nmcli con mod enp1s0 +ipv4.routes "10.30.0.0/16 192.168.122.254".9عرض الجيران (جدول ARP)
ip neigh show 192.168.122.1 dev enp1s0 lladdr 52:54:00:aa:bb:cc REACHABLEعنوانا IP لهما نفس عنوان MAC، أو عنوان MAC للبوابة يتغير، قد يكون علامة على هجوم ARP spoofing.
10مسح سجل جار خاطئ
ip neigh flush dev enp1s0بعد تغيير موجّه أو نقل عنوان IP إلى خادم آخر، قد تمنع السجلات القديمة الحركة لفترة.
11إيقاف بطاقة ثم تشغيلها
ip link set enp1s0 down ip link set enp1s0 upلا تفعل هذا عبر SSH على البطاقة التي تستخدمها: ستفقد الاتصال.
12تغيير قيمة MTU لاختبار
ip link set dev enp2s0 mtu 9000 ip link show enp2s0 | grep -o 'mtu [0-9]*' mtu 9000الإطارات الكبيرة (jumbo frames) تفيد شبكات التخزين. كل السويتشات والخوادم في الطريق يجب أن تستخدم نفس MTU.
13الحصول على العناوين بصيغة JSON لسكربت
ip -j addr show dev enp1s0 | jq -r '.[0].addr_info[] | select(.family=="inet") | .local' 192.168.122.10مخرجات JSON لا تتغير بين الإصدارات، لذلك لا تتعطل السكربتات.
14النظر داخل نطاق أسماء الشبكة لحاوية
ip netns list ip netns exec blue ip -br aالحاويات وبعض أدوات VPN تستخدم نطاقات الأسماء. كل نطاق له بطاقات ومسارات خاصة.
15متابعة تغييرات الشبكة مباشرة
ip -t monitor address routeيعرض كل تغيير في العناوين والمسارات مع الوقت. اضغط Ctrl+C للإيقاف. مفيد عندما يغيّر DHCP أو VPN المسارات.
لا يوجد شيء يطابق هذا الفلتر.
انتبه
- كل التغييرات بـ
ipتضيع بعد إعادة التشغيل. وقد يكتب NetworkManager فوقها قبل ذلك. - الأمر
ip link set DEV downعبر SSH على نفس البطاقة يقطع اتصالك. - الأمر
ip addr flush dev DEVيحذف كل عناوين البطاقة. - اقرأ القناع:
192.168.122.10/24و192.168.122.10/32مختلفان جدًا.
الملفات
/etc/iproute2/rt_tables- أسماء جداول التوجيه (يستخدمها التوجيه حسب السياسة).
/proc/net/dev- العدادات الخام لكل البطاقات (ما يعرضه
ip -s link). /sys/class/net/- مجلد لكل بطاقة شبكة فيه إعداداتها.
نصائح للحفظ
- اقرأ الكائنات كأسئلة: a = أي عناوين؟ r = أي طريق؟ l = أي بطاقات؟ n = من بجانبي؟
-
ip -br aوip rهما أول أمرين في أي شبكة معطلة. - انظر بـ
ipوغيّر بـnmcli.