ديف أوبس

إعداد الشبكة في أوبنتو سيرفر

كيفية ضبط إعدادات الشبكات على خادوم أوبنتو

إعداد الشبكة في أوبنتو، تكوين الشبكات، Netplan، Static IP، Network Interfaces، Ubuntu Server، DHCP، DNS

يُعد ضبط إعدادات الشبكات من الأمور الأساسية لأي مدير نظام أو مطور يعمل على خواديم أوبنتو، نظرًا لأن الشبكة تشكل العمود الفقري لأي بيئة تشغيلية تعتمد على التفاعل بين الأنظمة والخدمات المختلفة. في خواديم أوبنتو (Ubuntu Server)، يُعد تكوين الشبكات من أهم الخطوات التي تسبق عمليات النشر، سواء كانت تخص الخواديم المحلية أو تلك المستضافة في بيئات الحوسبة السحابية. يتناول هذا المقال بشيء من التفصيل كيفية إدارة وضبط إعدادات الشبكات على خادوم أوبنتو بطريقة احترافية تغطي الجوانب المختلفة للنظام، بدءًا من الإعدادات التقليدية باستخدام ملفات الشبكة وحتى النظام الأحدث Netplan.


1. مقدمة حول بنية إعدادات الشبكة في أوبنتو

في النسخ الحديثة من أوبنتو (ابتداءً من 17.10)، تم استبدال الطرق التقليدية لتكوين الشبكة عبر interfaces بأداة جديدة تُسمى Netplan، وهي أداة تعتمد على ملفات YAML لتحديد وتطبيق إعدادات الشبكة من خلال backends مثل systemd-networkd أو NetworkManager. أما في النسخ الأقدم (مثل Ubuntu 16.04 وما دون)، فكان يتم التحكم بالشبكات عبر تعديل ملف /etc/network/interfaces.


2. التحقق من إصدار أوبنتو ونظام الشبكة

قبل البدء، من الضروري معرفة إصدار أوبنتو قيد التشغيل لتحديد الطريقة الملائمة لضبط إعدادات الشبكة:

bash
lsb_release -a

أو:

bash
cat /etc/os-release

ثم للتحقق من نظام إدارة الشبكة المستخدم:

bash
networkctl

أو:

bash
netplan --debug

3. إعداد الشبكة باستخدام Netplan (لإصدارات أوبنتو 18.04 فأحدث)

3.1. بنية ملفات Netplan

تقع ملفات Netplan غالبًا في المسار:

bash
/etc/netplan/

وتنتهي بامتداد .yaml. على سبيل المثال:

bash
/etc/netplan/01-netcfg.yaml

3.2. مثال لتكوين عنوان IP ثابت

yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4

بعد حفظ التعديلات:

bash
sudo netplan apply

3.3. استخدام DHCP بدلاً من IP ثابت

yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes

4. إعداد الشبكة في الإصدارات القديمة (باستخدام interfaces)

4.1. موقع الملف

الملف الرئيسي:

bash
/etc/network/interfaces

4.2. تكوين IP ثابت

bash
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4

لتفعيل الإعدادات:

bash
sudo ifdown eth0 && sudo ifup eth0

أو:

bash
sudo systemctl restart networking

5. إعدادات الشبكة اللاسلكية (Wi-Fi) في الخادوم

إذا كان الخادوم مزودًا ببطاقة شبكة لاسلكية، يتم تعريف الاتصال اللاسلكي باستخدام wpa_supplicant.

5.1. إعداد ملف wpa_supplicant

bash
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

المحتوى:

makefile
network={ ssid="اسم-الشبكة" psk="كلمة-المرور" }

لتشغيل الاتصال اللاسلكي:

bash
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf sudo dhclient wlan0

6. إدارة إعدادات DNS

في أوبنتو، يتم تحديد خوادم DNS إما من خلال Netplan أو من خلال ملف resolv.conf.

6.1. باستخدام Netplan

تمت الإشارة سابقًا إلى استخدام:

yaml
nameservers: addresses: - 8.8.8.8 - 8.8.4.4

6.2. باستخدام systemd-resolved

لإدارة DNS يدويًا:

bash
sudo systemctl status systemd-resolved sudo resolvectl status

يمكن الربط مع resolv.conf:

bash
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

7. التحقق من حالة الشبكة والاتصال

bash
ip a # عرض الواجهات والعناوين ip r # عرض جدول التوجيه ping 8.8.8.8 # اختبار الاتصال الخارجي systemctl status systemd-networkd

8. التعامل مع مشاكل الشبكة

8.1. إعادة تشغيل الخدمات

bash
sudo systemctl restart systemd-networkd

أو:

bash
sudo netplan apply

8.2. فحص ملفات السجل

bash
journalctl -u systemd-networkd dmesg | grep eth

9. تكوين الشبكة في بيئات سحابية

تُدار إعدادات الشبكة غالبًا بواسطة أدوات مثل cloud-init. عند استخدام منصات مثل AWS أو Azure أو DigitalOcean، يجب الانتباه إلى عدم تعارض Netplan مع إعدادات cloud-init.

bash
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

المحتوى لتعطيل تكوين الشبكة من cloud-init:

css
network: {config: disabled}

10. إعدادات متقدمة

10.1. إعداد واجهات متعددة (Multi-homing)

يمكنك تكوين أكثر من عنوان IP أو أكثر من بوابة لكل واجهة:

yaml
ethernets: enp0s3: addresses: - 192.168.1.100/24 - 192.168.1.101/24 gateway4: 192.168.1.1

10.2. إعداد جسر شبكة (Bridge)

يُستخدم في بيئات التمثيل الافتراضي (Virtualization):

yaml
network: version: 2 renderer: networkd bridges: br0: interfaces: [enp3s0] addresses: [192.168.1.150/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]

11. جدول يوضح الفروقات بين Netplan و interfaces

الخاصية Netplan interfaces
الإصدارات المدعومة Ubuntu 18.04 فما بعد Ubuntu 16.04 وما قبل
لغة التكوين YAML Plain Text
طريقة التطبيق netplan apply ifup / ifdown, systemctl
دعم الواجهات الحديثة نعم (يدعم VLAN, Bridge, Bonding) دعم محدود
الاعتماد على backends systemd-networkd, NetworkManager لا يعتمد على backends
توافق مع cloud-init نعم غالبًا لا

12. الخلاصة التقنية

إدارة إعدادات الشبكة في أوبنتو لم تعد عملية عشوائية بل تعتمد على منهجيات واضحة ومنظمة، خصوصًا مع إدخال أدوات مثل Netplan. من المهم فهم طبيعة البيئة التشغيلية التي تعمل بها سواء على إصدار حديث أو قديم من أوبنتو، والتعامل مع إعدادات الشبكة باحترافية سواء عبر DHCP أو IP ثابت، أو حتى في بيئات افتراضية وسحابية. توفر أوبنتو أدوات متقدمة للتحقق من حالة الشبكة وتشخيص الأخطاء، ما يسهم في الحفاظ على كفاءة وأمان النظام بشكل دائم.


المصادر:

  1. Ubuntu Networking Documentation

  2. Netplan.io Documentation