يُعدّ systemd-networkd مدير الشبكة المدمج في نظام systemd، وهو يُستخدم لتكوين روابط الإيثرنت والعناوين والمسارات والجسور وشبكات VLAN وغيرها من أجهزة الشبكة. بالنسبة للاتصال السلكي الأساسي، يكون الإعداد بسيطًا: تحديد الواجهة، وإنشاء .networkملف، والتأكد من عدم وجود مدير آخر يستخدم نفس الواجهة، ثم تشغيل systemd-networkd systemd-networkd، والتحقق من النتيجة.
يستخدم هذا الدليل بروتوكول DHCP على واجهة إيثرنت سلكية. إذا كنت متصلاً بالجهاز عبر SSH، فاستخدم وحدة تحكم محلية أو إدارة خارج النطاق قبل تغيير مدير الشبكة، لأن عملية التسليم قد تؤدي إلى انقطاع الاتصال مؤقتًا.
1. تحقق من واجهة الإيثرنت ومدير الشبكة الحالي
ابدأ بإدراج الروابط التي يعرفها نظام systemd:
networkctl list
ابحث عن واجهة الاتصال السلكية، والتي عادةً ما يكون اسمها أحد الأسماء التالية enp3s0: eno1أو أو eth0. يمكنك أيضًا تشغيل الأمر ip link. لا تنسخ اسم واجهة الاتصال كما هو.

بعد ذلك، تحقق مما إذا كان مدير الشبكة نشطًا:
systemctl status NetworkManager
يمكن لبرنامجي NetworkManager و systemd-networkd العمل معًا عند إدارتهما لواجهات مختلفة ، ولكن لا ينبغي السماح لهما بإدارة نفس وصلة الإيثرنت. تشرح وثائق systemd.network.network الحالية كيفية مطابقة الملفات مع الواجهات وكيف يحدد networkd ملكيتها.

2. إنشاء ملف تعريف شبكة DHCP
توجد ملفات تعريف المسؤول المحلي في /etc/systemd/network/. أنشئ الدليل إذا لم يكن موجودًا بالفعل، ثم عدّل ملفًا مثل 20-wired.network:
sudo mkdir -p /etc/systemd/network
sudo nano /etc/systemd/network/20-wired.network
للاتصال بشبكة إيثرنت عادية تستقبل عنوانها من جهاز التوجيه أو خادم DHCP، استخدم ما يلي:
[Match]
Name=enp3s0
[Network]
DHCP=yes
استبدل هذا enp3s0باسم واجهتك الفعلية. يجب أن تنتهي أسماء الملفات بـ .network. عندما تتطابق عدة ملفات مع رابط، يستخدم systemd-networkd أول ملف مطابق بالترتيب الأبجدي الرقمي، لذا فإن اسمًا محددًا مثل 20-wired.networkأسهل في الفهم من اسم عام شامل.

اختياري: استخدم عنوان IPv4 ثابت
إذا كان الجهاز يحتاج إلى عنوان ثابت، فاستبدله DHCP=yesبقيم مناسبة لشبكتك:
[Match]
Name=enp3s0
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=1.1.1.1
DNS=9.9.9.9
لا تعيد استخدام عناوين العينة هذه إلا إذا كانت مطابقة لشبكتك الفرعية. راجع وثائق مرجع systemd.network الرسمية للاطلاع على خيارات التوجيه المتقدمة الأخرى.DHCP=Address=Gateway=DNS=
3. تمكين systemd-networkd
بمجرد أن يصبح الملف التعريفي جاهزًا، قم بتمكين خدمة networkd وابدأ تشغيلها على الفور:
sudo systemctl enable --now systemd-networkd
إذا كانت خدمة أخرى تدير حاليًا نفس واجهة الإيثرنت، فقم بتنفيذ عملية نقل الإدارة من وحدة تحكم محلية. بالنسبة للمضيف الذي ينتقل كليًا من NetworkManager، يمكنك إيقافه وتعطيله باستخدام الأمر التالي:
sudo systemctl disable --now NetworkManager
لا تقم بتعطيل مدير الشبكة (NetworkManager) عندما لا تزال بحاجة إليه لشبكة Wi-Fi أو واجهات أخرى. systemd-networkdيقوم هذا البرنامج بتكوين شبكة IP، ولكن مصادقة Wi-Fi تتطلب عادةً مكونًا منفصلاً مثل iwd أو wpa_supplicant.

4. قم بتهيئة نظام أسماء النطاقات (DNS) باستخدام systemd-resolved إذا لزم الأمر
systemd-resolvedليس شرطًا أساسيًا لتشغيل networkd نفسه، ولكنه يتكامل معه بشكل جيد ويمكنه استخدام خوادم DNS التي يتم الحصول عليها عبر DHCP. إذا لم تكن توزيعتك تستخدم مُحلِّل أسماء نطاقات آخر، فقم بتفعيله.
sudo systemctl enable --now systemd-resolved
توصي وثائق systemd-resolved بالربط بملفها الفرعي/etc/resolv.conf (stub file) عندما يكون resolved هو محلل النظام. تحقق أولاً:
readlink -f /etc/resolv.conf
إذا كنت ترغب عمدًا في أن يقوم systemd-resolved بتوفير resolv.conf، فاستخدم:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
لا تقم بالاستبدال /etc/resolv.confإذا كانت عملية التوزيع الخاصة بك أو أداة DNS أخرى تديرها عمداً.

5. أعد تحميل الإعدادات وأعد تهيئة الواجهة
بعد تعديل .networkالملف، أعد تحميل إعدادات networkd. يمكنك بعد ذلك إعادة تكوين الرابط المستهدف بشكل صريح:
sudo networkctl reload
sudo networkctl reconfigure enp3s0
استبدل enp3s0باسم واجهة الشبكة الخاصة بك. يوثّق دليل networkctl الرسمي كلا الأمرين. يُعيد الأمر الكامل systemctl restart systemd-networkdتحميل الخدمة أيضًا، ولكنه networkctlعادةً ما يكون الخيار الأنسب.

6. تحقق من أن systemd-networkd يعمل
تحقق من حالة الواجهة:
networkctl status enp3s0
للحصول على اتصال DHCP سليم، يجب أن ترى الرابط مُهيأً بعنوان IP وبوابة افتراضية ومعلومات DNS عادةً.

ثم تأكد من التوجيه والاتصال:
ip route
ping -c 3 1.1.1.1
إذا نجح اختبار الاتصال بعنوان IP ولكن لم يتم حل أسماء المواقع الإلكترونية أو أسماء المضيفين، فاختبر نظام أسماء النطاقات (DNS) resolvectl query example.comباستخدام systemd-resolved. إذا بقيت الواجهة فارغة unmanaged، فأعد التحقق من [Match]الاسم وتأكد من عدم وجود مدير شبكة آخر يستخدم نفس الجهاز.

للحصول على معلومات حول الإعدادات المتقدمة مثل الجسور، والروابط، وشبكات VLAN، والأنفاق، أو الأجهزة الافتراضية، راجع وثائق خدمة systemd-networkdsystemd.netdev الرسمية والمراجع ذات الصلة systemd.link.