ماذا يفعل
NetworkManager هو الخدمة التي تدير الشبكة في Red Hat Enterprise Linux. يحفظ إعداداتك في ملفات تعريف الاتصال (connection profiles). ملف التعريف يحمل عناوين IP والبوابة وخوادم DNS وأكثر. الأداة nmcli هي أداة سطر الأوامر لقراءة وتغيير ملفات التعريف هذه والأجهزة (بطاقات الشبكة).
الإعدادات التي تضبطها بـ nmcli تُحفظ في ملف التعريف، لذلك تبقى بعد إعادة التشغيل. هذا هو الفرق الكبير مع الأمر ip الذي تضيع تغييراته عند إعادة التشغيل.
أغلب الأوامر يمكن اختصارها: nmcli connection show = nmcli con show = nmcli c s. الإكمال بزر Tab يساعدك في إيجاد الكلمة التالية.
طريقة الكتابة
nmcli [OPTIONS] OBJECT { COMMAND | help }
nmcli connection { show | up | down | modify | add | edit | clone | delete | reload | load | import | export | monitor }
nmcli device { status | show | set | connect | disconnect | reapply | modify | delete | monitor | wifi | lldp }
nmcli general { status | hostname | permissions | logging | reload }
nmcli networking { on | off | connectivity }
nmcli radio { all | wifi | wwan } [ on | off ]الأجزاء الرئيسية
general- الحالة العامة لـ NetworkManager، واسم الجهاز، وصلاحياتك، ومستوى السجلات.
networking- تشغيل كل الشبكة أو إيقافها، أو فحص الاتصال بالإنترنت.
radio- تشغيل أو إيقاف الواي فاي وشبكة الهاتف المحمول.
connection(con,c)- العمل مع ملفات التعريف: show و add و modify و up و down و delete و reload.
device(dev,d)- العمل مع بطاقات الشبكة: الحالة، التفاصيل، الاتصال، قطع الاتصال، الواي فاي.
monitor- متابعة تغييرات الأجهزة والاتصالات مباشرة.
agent- العمل كوكيل للأسرار أو لـ polkit (يطلب كلمات المرور).
الخيارات 45
الأكثر استخدامًا
خيارات عامة (قبل الكائن)
خيارات أوامر connection
إعدادات تغيّرها كثيرًا (setting.property)
لا يوجد شيء يطابق هذا الفلتر.
أمثلة 16
$ مستخدم عادي# بصلاحية root (أو مع sudo)
1عرض كل ملفات التعريف والجهاز الذي يستخدمها
nmcli connection show NAME UUID TYPE DEVICE enp1s0 3f0c3a8e-6c35-4c5a-9a0e-7f1a2b3c4d5e ethernet enp1s0 lo 2b1c5e3a-1d2e-4f5a-8b9c-0d1e2f3a4b5c loopback loملف التعريف الذي عمود DEVICE فيه فارغ ليس نشطًا الآن.
2عرض حالة كل بطاقة شبكة
nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0 lo loopback connected (externally) lo"disconnected" تعني أن البطاقة تعمل لكن لا يوجد ملف تعريف نشط عليها. و "unmanaged" تعني أن NetworkManager لا يتحكم فيها.
3إعطاء الخادم عنوان IPv4 ثابتًا
nmcli con mod enp1s0 ipv4.method manual ipv4.addresses 192.168.122.10/24 \ ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 nmcli con up enp1s0التغيير يُحفظ في ملف التعريف. والأمر
con upيستخدمه الآن مباشرة.4إضافة عنوان ثانٍ بدون حذف الأول
nmcli con mod enp1s0 +ipv4.addresses 192.168.122.110/24 nmcli con up enp1s0استخدم علامة الطرح لحذف عنوان واحد مرة أخرى:
-ipv4.addresses 192.168.122.110/24.5إنشاء ملف تعريف جديد بعنوان ثابت
nmcli con add con-name app-net type ethernet ifname enp2s0 \ ipv4.method manual ipv4.addresses 10.10.20.15/24 ipv4.gateway 10.10.20.1 ipv4.dns 10.10.20.53مفيد لبطاقة شبكة ثانية، مثل شبكة منفصلة للنسخ الاحتياطي أو لقواعد البيانات.
6استخدام خوادم DNS الخاصة بك فقط (تجاهل DHCP)
nmcli con mod enp1s0 ipv4.dns "10.0.0.53 10.0.1.53" ipv4.ignore-auto-dns yes ipv4.dns-search corp.example.com nmcli con up enp1s0 cat /etc/resolv.confيكتب NetworkManager الملف /etc/resolv.conf بدلًا منك. الخادم المؤمَّن يجب أن يستخدم فقط خوادم DNS الداخلية التي تسجّل الطلبات.
7إضافة مسار ثابت إلى شبكة أخرى
nmcli con mod enp1s0 +ipv4.routes "10.20.0.0/16 192.168.122.254" nmcli con up enp1s0 ip route show 10.20.0.0/16شائع لشبكة الإدارة أو لبوابة VPN. المسار يبقى بعد إعادة التشغيل، على عكس
ip route add.8الحصول على قيمة واحدة لسكربت
nmcli -g IP4.ADDRESS device show enp1s0 192.168.122.10/24 nmcli -t -f NAME,DEVICE con show --active enp1s0:enp1s0الخياران -g و -t يعطيان مخرجات نظيفة بدون عناوين. استخدمهما في سكربتات التجهيز وفحوصات الصحة.
9إنشاء واجهة VLAN لشبكة منفصلة
nmcli con add type vlan con-name vlan30 dev enp1s0 id 30 \ ipv4.method manual ipv4.addresses 172.16.30.5/24 nmcli con up vlan30شبكات VLAN تفصل حركة البيانات، مثل منطقة DMZ للخوادم العامة. يجب أن يسمح منفذ السويتش بالشبكة VLAN 30.
10إنشاء bond من بطاقتين للتبديل عند العطل
nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100" \ ipv4.method manual ipv4.addresses 192.168.50.10/24 ipv4.gateway 192.168.50.1 nmcli con add type ethernet port-type bond controller bond0 con-name bond0-p1 ifname enp3s0 nmcli con add type ethernet port-type bond controller bond0 con-name bond0-p2 ifname enp4s0 nmcli con up bond0إذا تعطل كابل أو سويتش تعمل البطاقة الأخرى مكانه. تحقق بالأمر
cat /proc/net/bonding/bond0.11وضع ملف تعريف في منطقة firewalld
nmcli con mod enp2s0 connection.zone internal nmcli con up enp2s0 firewall-cmd --get-active-zonesكل بطاقة شبكة يمكن أن تكون لها قواعد جدار ناري خاصة: public لجهة الإنترنت و internal للجهة الخاصة.
12إيقاف IPv6 في ملف تعريف
nmcli con mod enp1s0 ipv6.method disabled nmcli con up enp1s0افعل ذلك فقط إذا طلبته سياسة الشركة. خدمات كثيرة تعمل جيدًا مع IPv6.
13ضبط اسم الجهاز
nmcli general hostname web01.example.com hostnamectl --static web01.example.comنفس نتيجة
hostnamectl set-hostname.14معرفة من يُسمح له بتغيير الشبكة
nmcli general permissionsعبر SSH يحصل المستخدم العادي غالبًا على "no" أو "auth". استخدم sudo.
15قراءة ملف تعريف عُدّل يدويًا مرة أخرى
vim /etc/NetworkManager/system-connections/enp1s0.nmconnection nmcli con reload nmcli con up enp1s0الأمر
reloadيقرأ الملفات فقط. والأمرupيجعل الإعدادات الجديدة نشطة.16متابعة تغييرات الشبكة مباشرة
nmcli monitorمفيد عندما تفصل كابلًا أو تعيد تشغيل سويتش. اضغط Ctrl+C للإيقاف.
لا يوجد شيء يطابق هذا الفلتر.
انتبه
- الأمر
nmcli con modيغيّر ملف التعريف فقط. نفّذnmcli con up NAMEلاستخدام التغيير الآن. - عبر SSH، العنوان أو البوابة الخاطئة يقطع اتصالك أنت. اترك شاشة console مفتوحة.
- بدون
+فإن إعدادًا مثلipv4.addressesيستبدل كل القيم القديمة. - ملفا تعريف لجهاز واحد وكلاهما فيه autoconnect: لن تعرف أيهما سيبدأ بعد إعادة التشغيل.
- الإعداد
ipv4.method manualيحتاج عنوانًا واحدًا على الأقل فيipv4.addresses، وإلا يفشل الأمر. - لا تعدّل
/etc/resolv.confيدويًا. NetworkManager يكتبه مرة أخرى.
الملفات
/etc/NetworkManager/system-connections/- ملفات التعريف، ملف keyfile واحد (.nmconnection) لكل ملف تعريف. لـ root فقط (صلاحيات 600).
/etc/NetworkManager/NetworkManager.conf- الإعدادات الرئيسية لـ NetworkManager.
/etc/NetworkManager/conf.d/- ملفات إعدادات إضافية تُقرأ بعد الملف الرئيسي.
/run/NetworkManager/system-connections/- ملفات تعريف غير محفوظة على القرص (تختفي بعد إعادة التشغيل).
/etc/resolv.conf- إعدادات DNS. يكتبها NetworkManager.
نصائح للحفظ
- تذكّر الترتيب: show ← modify ← up ← تحقّق.
- الأمر
nmcli con show NAMEيعرض كل إعدادات ملف التعريف. ابحث فيها بـ| grep ipv4. - تهت بين الكلمات؟ اضغط Tab مرتين بعد أي كلمة، أو اكتب
nmcli con mod NAME ipv4.ثم Tab. - صفحة
man nmcli-examplesفيها أمثلة كثيرة جاهزة.