$ مستخدم عادي# بصلاحية root (أو مع sudo)
أهداف الامتحان في هذا الفصل
- تشغيل خدمات الشبكة وإيقافها والتحقق من حالتها
- ضبط عناوين IPv4 و IPv6
- إعداد تحليل أسماء المضيفات
- جعل خدمات الشبكة تعمل عند الإقلاع
قراءة عنوان IPv4 وقناعه
عنوان IPv4 هو 4 أرقام من 0 إلى 255. القناع (أو البادئة prefix) يحدد أي جزء هو الشبكة وأي جزء هو الجهاز (host).
عنوان مثل 192.168.122.10/24 له جزءان:
192.168.122.10هو عنوان هذا الجهاز./24هو البادئة (prefix). أول 24 بت (أول 3 أرقام) هي الشبكة. الرقم الأخير هو الجهاز.
يمكن كتابة نفس القناع بطريقتين. أدوات لينكس تستخدم صيغة البادئة.
| البادئة | القناع | عدد الأجهزة المتاحة |
|---|---|---|
/8 | 255.0.0.0 | 16,777,214 |
/16 | 255.255.0.0 | 65,534 |
/24 | 255.255.255.0 | 254 |
/25 | 255.255.255.128 | 126 |
/26 | 255.255.255.192 | 62 |
/30 | 255.255.255.252 | 2 |
كل رقم هو 8 بت. بالنظام الثنائي 255 هو 11111111 و 192 هو 11000000. البادئة تعدّ بتات 1 في القناع من اليسار. عدد الأجهزة هو 2 أس (32 − البادئة) ناقص 2: عنوان للشبكة نفسها وعنوان للبث (broadcast).
النطاقات الخاصة تُستخدم داخل الشبكات فقط ولا تُوجَّه على الإنترنت: 10.0.0.0/8 و 172.16.0.0/12 و 192.168.0.0/16. العنوان 127.0.0.1 هو الجهاز نفسه (loopback).
تذكّر
/24 = 255.255.255.0 = 254 جهازًا. كل خطوة للأعلى (/25 و /26 …) تقسم عدد الأجهزة على 2.
نصيحة للامتحان
الامتحان يعطيك العنوان بصيغة البادئة مثل 192.168.4.10/24. اكتبه بنفس الصيغة في nmcli.
قراءة عنوان IPv6
عنوان IPv6 طوله 128 بت، ويُكتب في 8 مجموعات من 4 أرقام ست عشرية. يمكنك اختصاره.
مثال: 2001:0db8:0000:0000:0000:0000:0000:0010 يصبح 2001:db8::10.
- احذف الأصفار في بداية كل مجموعة:
0db8تصبحdb8. - استبدل سلسلة واحدة من المجموعات التي كلها أصفار بـ
::. يمكنك فعل ذلك مرة واحدة فقط في العنوان.
أغلب الشبكات تستخدم بادئة /64: أول 64 بت هي الشبكة، وآخر 64 بت هي الجهاز.
| العنوان | المعنى |
|---|---|
::1 | الجهاز نفسه (loopback) |
fe80::/10 | عنوان محلي للرابط (link-local). كل بطاقة لها واحد. يعمل على الشبكة المحلية فقط. |
2000::/3 | عناوين عامة تُستخدم على الإنترنت |
fd00::/8 | عناوين محلية فريدة للشبكات الخاصة |
تذكّر
:: تظهر مرة واحدة فقط. وجود عنوان link-local (fe80::) أمر طبيعي: لا يعني أن IPv6 تم إعداده.
معرفة عناوين MAC والبروتوكولات والمنافذ
عنوان MAC يحدد البطاقة على الشبكة المحلية. عنوان IP يحدد الجهاز عبر الشبكات. المنفذ (port) يحدد البرنامج على ذلك الجهاز.
- عنوان MAC هو 6 بايت بالنظام الست عشري، مثل
52:54:00:3a:7c:01. تضعه الشركة المصنّعة لبطاقة الشبكة. تراه باستخدامip link. - TCP يفتح اتصالًا ويتأكد من وصول كل البيانات (SSH والويب والبريد). UDP يرسل بدون اتصال (أسئلة DNS ووقت NTP).
- المنفذ رقم من 1 إلى 65535. المنافذ تحت 1024 للخدمات المعروفة.
| المنفذ | الخدمة |
|---|---|
| 22/tcp | SSH |
| 53/udp و tcp | DNS |
| 80/tcp و 443/tcp | HTTP و HTTPS |
| 123/udp | NTP (الوقت) |
| 2049/tcp | NFS |
الملف /etc/services يحتوي على أرقام المنافذ المعروفة وأسمائها.
grep -w 22 /etc/services
ssh 22/tcp
ssh 22/udpفي العمل
في المراجعة الأمنية، ابدأ بقائمة المنافذ التي تستمع (الدروس التالية). كل منفذ مفتوح يجب أن يكون له مالك وسبب.
رؤية العناوين وبطاقات الشبكة
استخدم ip للنظر إلى الشبكة. هو يعرض الإعدادات الحقيقية التي يستخدمها النظام (kernel) الآن.
- اعرض كل العناوين.
ip aاختصار لـip address show. - اعرض بطاقة واحدة فقط و IPv4 فقط.
ip -4 addr show dev enp1s0 - اعرض البطاقات (links) وعنوان MAC وحالتها. الخيار
-sيضيف عدادات للأخطاء والحزم المفقودة.
أسماء بطاقات الشبكة تخبرك بمكان البطاقة: en = إيثرنت، o1 = على اللوحة الأم، s1 = فتحة (slot)، p1s0 = ناقل PCI رقم 1 فتحة 0. لذلك eno1 و ens160 و enp1s0 كلها أسماء طبيعية.
انتبه
التغييرات باستخدام ip addr add أو ip link set تضيع بعد إعادة التشغيل. استخدم nmcli للإعدادات التي يجب أن تبقى.
التحقق من المسار والبوابة الافتراضية
جدول التوجيه يحدد أين تذهب الحزم. المسار الافتراضي (البوابة الافتراضية) يُستخدم لكل عنوان ليس له مسار أفضل.
ip route show
default via 192.168.122.1 dev enp1s0 proto static metric 100
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.10 metric 100السطر الأول هو البوابة الافتراضية. السطر الثاني يقول: الشبكة المحلية يتم الوصول إليها مباشرة عبر enp1s0.
لمعرفة الطريق الذي سيستخدمه النظام لعنوان واحد:
ip route get 8.8.8.8
8.8.8.8 via 192.168.122.1 dev enp1s0 src 192.168.122.10 uid 1000ثم اختبر الطريق خطوة بخطوة:
- هل تصل إلى البوابة؟ نفّذ
pingلها 3 مرات.ping -c 3 192.168.122.1 - هل تصل إلى عنوان على الإنترنت؟
ping -c 3 8.8.8.8 - أين يتوقف الطريق؟
tracepathيعرض كل موجّه (router) في الطريق.tracepath -n 8.8.8.8
تذكّر
ping للبوابة يعمل وللإنترنت لا يعمل = المشكلة بعد البوابة. ping للإنترنت يعمل بالرقم ولا يعمل بالاسم = مشكلة DNS.
التحقق من أن منفذًا أو خدمة تستجيب
الأمر ss يعرض المنافذ التي تستمع على هذا النظام والاتصالات المفتوحة.
الحروف: t = TCP، u = UDP، l = المنافذ التي تستمع فقط، n = أرقام (بدون أسماء)، p = اعرض البرنامج. تحتاج صلاحية root لرؤية برامج المستخدمين الآخرين.
ss -tlpn sport = :22
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1021,fd=3))قد تستمع الخدمة لكن الجدار الناري يمنعها. لذلك تحقق أيضًا من الجدار الناري (الفصل 23) واختبر من جهاز آخر.
curl -I http://server1.example.comفي العمل
0.0.0.0:22 تعني "كل عناوين IPv4". و 127.0.0.1:5432 تعني "هذا الجهاز فقط" — قاعدة بيانات لا يجب الوصول إليها من الخارج.
معرفة من يُسمح له بتغيير الشبكة
المستخدم root يغيّر كل شيء. المستخدم العادي يغيّر الشبكة فقط عندما يكون مسجلًا على الشاشة المحلية (console).
يسأل NetworkManager نظام PolicyKit عمّن يُسمح له بماذا. تحقق من صلاحياتك:
nmcli general permissionsالمستخدم الذي يدخل عبر SSH يحصل على auth أو no لأغلب الإجراءات. استخدم sudo أو اعمل كـ root لتغيير الشبكة عبر SSH.
انتبه
عندما تعمل عبر SSH، قد يقطع تغيير خاطئ اتصالك أنت. راجع الإعدادات الجديدة مرتين قبل nmcli con up. وعلى الجهاز الافتراضي اترك الشاشة (console) مفتوحة.
تغيير عنوان IPv4 باستخدام nmcli
يحفظ NetworkManager الإعدادات في ملف تعريف اتصال (connection profile). غيّر الملف باستخدام nmcli connection modify ثم فعّله باستخدام nmcli connection up.
- اعرف اسم ملف التعريف والجهاز (device).
nmcli connection show NAME UUID TYPE DEVICE enp1s0 3f0c3a8e-6c35-4c5a-9a0e-7f1a2b3c4d5e ethernet enp1s0 - اضبط عنوانًا ثابتًا والبوابة وخادم DNS. الإعداد
ipv4.method manualيوقف DHCP.nmcli connection modify enp1s0 ipv4.method manual ipv4.addresses 192.168.122.10/24 \ ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 - فعّل ملف التعريف مرة أخرى ليتم استخدام التغيير الآن.
nmcli connection up enp1s0
تحقّق
يجب أن يكون العنوان والمسار و DNS صحيحة.
يمكنك استخدام كلمات قصيرة: con بدل connection، و mod بدل modify، ويمكن كتابة ipv4.addresses أيضًا ip4. الإكمال بزر Tab يعمل مع nmcli: اضغط Tab مرتين لترى الكلمات التالية الممكنة.
للرجوع إلى DHCP:
nmcli con mod enp1s0 ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
nmcli con up enp1s0تذكّر
أولًا modify ثم up. بدون up يبقى التغيير منتظرًا في ملف التعريف.
نصيحة للامتحان
أعد تشغيل الجهاز في نهاية الامتحان وتحقق من العنوان مرة أخرى. الإعداد النشط فقط (غير المحفوظ في ملف التعريف) يضيع بعد إعادة التشغيل.
إضافة عنوان IPv6 أو عنوان IP ثانٍ
ملف التعريف يمكن أن يحمل عناوين كثيرة. علامة + قبل الإعداد تضيف قيمة، وعلامة - تحذف قيمة.
- أضف عنوان IPv4 ثانيًا لنفس البطاقة.
nmcli con mod enp1s0 +ipv4.addresses 192.168.122.110/24 - أضف عنوان IPv6 ثابتًا وبوابة.
nmcli con mod enp1s0 ipv6.method manual ipv6.addresses 2001:db8:10::10/64 ipv6.gateway 2001:db8:10::1 - فعّل التغييرات.
nmcli con up enp1s0
لحذف عنوان واحد مرة أخرى:
nmcli con mod enp1s0 -ipv4.addresses 192.168.122.110/24تذكّر
+ تضيف، - تحذف، وبدون علامة تستبدل كل القيم.
إنشاء ملف تعريف اتصال جديد
الجهاز الواحد يمكن أن يكون له ملفات تعريف كثيرة، لكن واحدًا فقط يكون نشطًا في نفس الوقت. ملف التعريف الجديد مفيد عندما تريد التبديل بين إعدادات، أو لبطاقة شبكة جديدة.
- أنشئ ملف التعريف.
con-nameهو اسم ملف التعريف، وifnameهو الجهاز.nmcli con add con-name lab-static type ethernet ifname 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 delete lab-static
انتبه
إذا كان ملفا تعريف لنفس الجهاز كلاهما فيه autoconnect مفعّل، فلن تعرف أيهما سيبدأ بعد إعادة التشغيل. أوقف الذي لا تريده: nmcli con mod enp1s0 connection.autoconnect no.
تغيير الشبكة باستخدام nmtui (القوائم)
nmtui قائمة نصية لنفس الإعدادات. هي سهلة عندما لا تتذكر كلمات nmcli.
- شغّلها بصلاحية root.
- اختر Edit a connection، ثم ملف التعريف، وغيّر IPv4 CONFIGURATION من Automatic إلى Manual، واكتب العنوان مع البادئة والبوابة وخادم DNS.
- اختر OK ثم Back ثم Activate a connection. أوقف ملف التعريف وفعّله مرة أخرى ليتم استخدام التغيير.
استخدم الأسهم وزر Tab للتنقل، وزر المسافة لوضع علامة في المربع، وزر Enter للاختيار.
نصيحة للامتحان
الأداة nmtui سريعة وآمنة لعنوان واحد. استخدم nmcli عندما تكتب إعدادات كثيرة أو تعمل داخل سكربت.
قراءة ملفات التعريف وتعديلها
كل ملف تعريف محفوظ كملف نصي (keyfile) في /etc/NetworkManager/system-connections/. يمكنك قراءته، وتعديله إذا جعلت NetworkManager يقرأ الملفات مرة أخرى بعد ذلك.
ls /etc/NetworkManager/system-connections/
enp1s0.nmconnection
cat /etc/NetworkManager/system-connections/enp1s0.nmconnection[connection]
id=enp1s0
type=ethernet
interface-name=enp1s0
[ipv4]
method=manual
address1=192.168.122.10/24,192.168.122.1
dns=192.168.122.1;بعد التعديل اليدوي، اطلب من NetworkManager قراءة الملفات مرة أخرى ثم فعّل ملف التعريف:
انتبه
يجب أن يكون الملف ملكًا لـ root وصلاحياته 600 (-rw-------)، وإلا فلن يستخدمه NetworkManager. في RHEL 10 لم تعد ملفات ifcfg القديمة في /etc/sysconfig/network-scripts/ مستخدمة.
تغيير اسم الجهاز (hostname)
الأمر hostnamectl يغيّر اسم النظام الآن وبعد إعادة التشغيل. هو يكتب الاسم في /etc/hostname.
- اعرض الاسم الحالي.
- اضبط الاسم الجديد. استخدم الاسم الكامل (FQDN).
hostnamectl set-hostname server1.example.com - تحقق منه. الطرفية الجديدة تعرض الاسم الجديد في سطر الأوامر.
hostname server1.example.com
الأمر nmcli general hostname server1.example.com يقوم بنفس العمل.
تذكّر
hostnamectl set-hostname = الآن + بعد إعادة التشغيل. الأمر hostname وحده يغيّر الاسم حتى إعادة التشغيل التالية فقط.
إعداد DNS والملف /etc/hosts
لينكس يبحث أولًا في /etc/hosts ثم يسأل خوادم DNS. الترتيب موجود في /etc/nsswitch.conf.
- أضف اسمًا إلى
/etc/hostsلجهاز ليس له اسم في DNS. الصيغة: العنوان، ثم الاسم الكامل، ثم الأسماء القصيرة./etc/hosts127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 192.168.122.20 server2.example.com server2 - اضبط خوادم DNS في ملف التعريف. NetworkManager يكتب
/etc/resolv.confبدلًا منك. لا تعدّل هذا الملف يدويًا: تعديلك سيضيع في التحديث التالي. - إذا كان DHCP يرسل خوادم DNS أيضًا وأنت تريد خوادمك فقط:
nmcli con mod enp1s0 ipv4.ignore-auto-dns yes
تحقّق
اختبر الأسماء. الأمر getent يتبع نفس ترتيب النظام (ملف hosts ثم DNS). أما dig و host و nslookup فتسأل DNS فقط.
hosts: files dns myhostnameالأوامر dig و host و nslookup موجودة في الحزمة bind-utils.
تذكّر
ملف hosts أولًا ثم DNS. getent hosts يختبر الاثنين، و dig يختبر DNS فقط.
في العمل
إذا كان تطبيق لا يصل إلى اسم لكن dig يعمل، قارن مع getent hosts. سطر قديم في /etc/hosts يتغلب غالبًا على DNS.
تشغيل خدمات الشبكة عند الإقلاع
الشبكة نفسها تبدأ عند الإقلاع عندما يكون NetworkManager مفعّلًا وملف التعريف فيه autoconnect مفعّل. خدمات الشبكة الأخرى (مثل SSH أو خادم ويب) تبدأ عند الإقلاع عندما تفعّلها بالأمر enable في systemd.
- تأكد أن NetworkManager يعمل الآن وعند الإقلاع.
systemctl enable --now NetworkManager - تأكد أن ملف التعريف يبدأ وحده.
nmcli con mod enp1s0 connection.autoconnect yes - شغّل خدمة شبكة وأوقفها وتحقق منها، واجعلها تبدأ عند الإقلاع.
تحقّق
بعد إعادة التشغيل يجب أن يكون ملف التعريف والخدمة نشطين.
تذكّر
enable = يبدأ عند الإقلاع. --now = ويبدأ الآن أيضًا.
تذكّر النقاط الأساسية
أهم حقائق هذا الفصل باختصار.
- عنوان
IPv4فيه 4 أرقام؛ والبادئة (/24) تحدد أي جزء هو الشبكة. عناوينIPv6طولها 128 بت وتُكتب بالنظام الست عشري. ip aيعرض العناوين، وip routeيعرض المسارات، وss -tulpnيعرض المنافذ التي تستمع.- NetworkManager يحفظ الإعدادات في ملفات تعريف الاتصال (connection profiles)؛ غيّرها باستخدام
nmcliأوnmtui. التغييرات بالأمرipتضيع بعد إعادة التشغيل. - عنوان ثابت:
nmcli con mod NAME ipv4.method manual ipv4.addresses IP/PREFIX ipv4.gateway GW ipv4.dns DNSثمnmcli con up NAME. - يحفظ
RHEL 10ملفات التعريف كملفاتkeyfileفي/etc/NetworkManager/system-connections/. - الأمر
hostnamectl set-hostname NAMEيضبط اسم الجهاز بشكل دائم. - تحليل الأسماء يستخدم
/etc/hostsأولًا ثمDNS(انظر/etc/nsswitch.conf)؛ اختبر بالأمرgetent hosts NAME. - يستطيع
root(أو مستخدم يسمح لهpolkit) تغيير إعدادات الشبكة.
تعلّم المصطلحات الأساسية
كلمات هذا الفصل بلغة بسيطة.
| المصطلح | المعنى |
|---|---|
| عنوان IP | عنوان بطاقة الشبكة داخل الشبكة. |
| البادئة / القناع | الجزء من العنوان الذي يمثل الشبكة (/24 = 255.255.255.0). |
| البوابة (Gateway) | الموجّه الذي يرسل البيانات إلى الشبكات الأخرى. |
| DNS | الخدمة التي تحوّل الأسماء إلى عناوين IP. |
| عنوان MAC | العنوان الفيزيائي لبطاقة الشبكة. |
| المنفذ (Port) | رقم يشير إلى خدمة واحدة على الجهاز (22 = SSH، 80 = HTTP). |
| NetworkManager | الخدمة التي تدير الشبكة في RHEL. |
| ملف تعريف الاتصال | مجموعة إعدادات شبكة محفوظة لجهاز. |
| الجهاز (device) | بطاقة شبكة أو واجهة شبكة أخرى مثل enp1s0. |
| اسم الجهاز (hostname) | اسم النظام. |
اختبر ما تعلّمته
فكّر في الإجابة أولًا ثم افتحها.
1كم عنوان جهاز يمكن استخدامه في شبكة /24؟
254.
2أي أمر يعرض كل عناوين IP بشكل مختصر؟
3كيف ترى الخدمات التي تستمع على منافذ TCP و UDP؟
4لماذا لا يصلح التغيير بالأمر ip addr add في الامتحان؟
لأنه يضيع بعد إعادة التشغيل. استخدم nmcli ليُحفظ في ملف التعريف.
5كيف تضيف عنوان IP ثانيًا إلى ملف تعريف؟
6كيف تغيّر اسم الجهاز بشكل دائم؟
7كيف يجد server1 الجهاز server2 بالاسم بدون DNS؟
أضف سطرًا لـ server2 في /etc/hosts.