حتى غير المهووسين ربما سمعوا عن " TCP / IP " ولكن هل يعرف الجميع ما هو أو كيفية تكوينه على خادم Linux باستخدام سطر الأوامر(using the command line) ؟
يساعد على تحديد المصطلحات الأساسية أولاً. على أقل تقدير ، يسمح لك بتطوير إطار لبناء فهمك. TCP/IP ليس استثناء.
هذا القسم الخاص بالمصطلحات ليس قائمة شاملة. سوف يمنحك الأساس الذي تبدأ عليه رحلتك في فهم الشبكات وكيفية تكوين ملفات TCP/IP على Linux .
The *Nix World
هل سبق لك أن تساءلت عما تعنيه كلمة *nix شيء ؟ ماذا عن كيفية ارتباط يونكس ولينكس(Unix and Linux are related) (ناهيك عن جميع الإصدارات المختلفة لكل منهما)؟
*nix هي طريقة للإشارة إلى Linux و / أو Unix (أو أي توزيع) باستخدام حرف بدل (العلامة النجمية) للقيام بذلك.
* تم تطوير Nix في أواخر الستينيات. طورت AT & T Bell Labs نظام Unix(Unix) في نفس الوقت تقريبًا. من خلال التكرارات والتطورات المختلفة ، ولد Linux أيضًا.(Linux)
نتيجة هذه الابتكارات المتوازية هي أنه بمجرد أن تتعلم كيفية إجراء عمليات التثبيت على خادم واحد عبر سطر الأوامر ، تكون قد تعلمت مهارة من المحتمل أن تكون متوافقة مع العديد من المهام الأخرى على مجموعة متنوعة من خوادم Unix أو Linux .
صفحات الرجل - المعلومات في متناول يدك(Man Pages – Information at Your Fingertips)
مثل Google إلى حد كبير ، لدى Linux مجموعته الخاصة من أدوات البحث والبحث التي تمكن المستخدمين من العثور على الموارد التي يحتاجون إليها. تُعرف هذه الموارد باسم "صفحات الدليل". عند تسجيل الدخول إلى خادم Linux (أو نظام التشغيل المستند إلى (Linux)Linux ) ، يمكنك فتح تطبيق سطر الأوامر وكتابة ما تريد البحث عنه ، مثل كتابة مصطلح بحث في ملف توثيق تفاعلي.
إذا اخترت موضوعًا تريد البحث عنه ، مثل أداة مساعدة أو أداة أو برنامج خفي أو نص في (daemon, script)Linux ، فيمكنك البحث عن ذلك بكتابة "man" ثم الكلمة. سوف تتعلم كيفية القيام بذلك لاحقًا في هذه المقالة.
صفحات الرجل سهلة الاستخدام. ما عليك(Just) سوى البدء في كتابة كلمتين وسيبدأ نظام التشغيل Linux في إعادة المعلومات إليك. (Linux OS)إذا لم تكن هناك صفحة دليل لموضوع معين ، فسوف يخبرك Linux بذلك.(Linux)
بالنسبة للجزء الأكبر ، تعتبر صفحات الدليل دقيقة بشكل معقول لإصدار البرنامج الذي تظهر عليه. على سبيل المثال ، إذا قمت بتسجيل الدخول إلى خادم Linux عمره 10 سنوات ، فستعرض صفحة الدليل معلومات متعلقة بهذا الإصدار (والعمر).
صفحات الدليل سهلة الاستخدام ودقيقة ، ولكن هناك بعض المحاذير. دعنا نوضح تلك التحذيرات من خلال الصور.
في الصورة أدناه ، تشير صفحة الدليل الخاصة بـ ARP إلى أن ARP قد عفا عليه الزمن (تحت قسم "الملاحظات") وأنه يجب البحث عن ip neigh بدلاً من ذلك. يبدو ، من خلال هذا الترميز ، أن المرء قد يرغب في كتابة " man ip neigh " للوصول إلى معلومات حول الأداة / البروتوكول البديل.
ومع ذلك ، فإن كتابة " man ip neigh " لا تبحث في صفحة الدليل عن "ip neigh". بدلاً من ذلك ، سيبحث عن صفحتين من رجال ... واحدة من أجل "ip" والأخرى عن "صهيل".
في حين أنه من الصحيح أنك ستحصل على صفحة رجل إذا كتبت "man ip neigh" ، إلا إذا كنت منتبهًا جيدًا ، فقد تفوت أنها ليست في الواقع ما كنت تبحث عنه.
يمكنك إضافة شرطة (على الرغم من أن هذا ليس ما يظهر في صفحة الدليل عند الرجوع إلى أداة الاستبدال) ... لذلك ، إذا أضفت شرطة وكتبت "man ip-neigh" فهذا يعمل بشكل جيد ولكنه ليس صحيحًا أيضاً.
يمكنك محاولة كتابة " man ip-neighbour " (لاحظ التهجئة البريطانية). عندما تكتب هذه العبارة المعينة ، سترى صفحة الدليل الصحيحة لاستبدال صفحة دليل ARP (أو استبدال بروتوكول ARP ). خلاصة القول هي: إذا لم تتمكن من العثور على ما تحتاجه ، فحاول استخدام مجموعات مختلفة حتى تحصل على صفحة الدليل المطلوبة.
كمثال ، حاول البحث عن صفحة الدليل لأداة nslookup. يمكنك القيام بذلك عن طريق كتابة "man nslookup". عندما تفعل ذلك ، سترى صفحة رجل تبدو مشابهة للصورة / لقطة الشاشة أدناه. ستتعلم كل ما تريد معرفته حول أداة nslookup.
بعد أن تنبثق صفحة الرجل على شاشتك ، يمكنك التمرير لأسفل ، وقراءة ، وتطبيق ، واختبار ، وحتى إغلاق صفحة الدليل (عن طريق كتابة الحرف "q" والسماح بإغلاق صفحة الدليل تلقائيًا).
إذا طلبت صفحة دليل غير موجودة ، فسيقوم Linux بتزويدك بملاحظات تفيد بعدم وجود إدخال لصفحة الدليل هذه وتجربة صفحة أخرى.
IPv4 و IPv6(IPv4 and IPv6)
كل من IPv4 و IPv6 متماثلان(IPv6) من الناحية الفنية ، لكنهما لا يظهران كما هو الحال بالنسبة لنا نحن البشر. إنها وسيلة لتحديد الأجهزة أو الأجهزة الموجودة على شبكة محلية ( LAN ). إنهم يتمتعون بالخصوصية في الطريقة التي يتعرفون بها على الأجهزة الموجودة في الشبكة المحلية(LAN) .
يستخدم IPv4(IPv4) أرقامًا مفصولة بنقاط / نقاط. معظمنا على دراية بنوع عناوين IP التي نراها لأجهزة الكمبيوتر المتصلة بشبكاتنا الخاصة باستخدام تنسيق IPv4 .
تحتوي أجهزة الكمبيوتر الموجودة على الشبكة أيضًا على عنوان IPv6 ، لكنه يبدو مختلفًا. يتكون IPv6(IPv6) من أحرف أبجدية رقمية مفصولة بنقطتين (:).
إذن ما هي الاختلافات بين IPv4 و IPv6 ؟ فكر(Think) في الأمر على أنه اسم شبكة. أحدهما يشبه الاسم الأول والآخر هو الاسم الأخير. يشير كلا الاسمين إلى نفس الشخص (أو في هذه الحالة ، جهاز كمبيوتر). مثلما لدينا عمومًا اسم أول مختلف مقارنةً باسمنا الأخير ، فإن "اسم " IPv4 سيكون مختلفًا عن "اسم " IPv6 على الرغم من أنهما يشيران إلى نفس الجهاز.
كتبت كارلا شرودر(Carla Schroeder) مقالة سهلة القراءة ومفيدة حول IPv4 و IPv6(useful article about IPv4 and IPv6) .
الوصول إلى الجذر على خادم Linux (و su و sudo)(Root Access on a Linux Server (and su and sudo))
بالنسبة للعديد من المهام التي تحتاج إلى إكمال ، يلزم الوصول إلى الجذر (المعروف أيضًا باسم المسؤول أو المستخدم المتميز). ذلك لأن العديد من هذه الأدوات والتطبيقات حساسة بدرجة كافية بحيث يتم تقييدها لأسباب أمنية.
يتمثل أحد الحلول البديلة لتسجيل الدخول كجذر أو تشغيل وصول المستخدم المتميز (su) في إرفاق أمر بـ "sudo" لإخبار جهاز Linux أن هذا الأمر المعين يحتاج إلى تشغيله كمستخدم متميز / جذر ، ولكن الأوامر اللاحقة لا تفعل ذلك (ما لم يكن أيضًا مُسبَق بتوجيه "sudo").
في الحالات التي يتم فيها استخدام "sudo" وإضافته إلى الأمر مسبقًا ، سيطلب Linux كلمة مرور su من أجل مصادقة هوية المستخدم المتميز والأذونات.(Linux)
بروتوكولات الشبكات(Networking Protocols)
هناك العديد من البروتوكولات المختلفة التي يجب مراعاتها عند مناقشة Linux . البروتوكولين الأساسيين لهذه المقالة هما TCP و IP.
بروتوكول التحكم في الإرسال (TCP)(Transmission Control Protocol (TCP))
بروتوكول التحكم(Transmission Control Protocol) في الإرسال ، الذي يشار إليه غالبًا باسم TCP ، هو بروتوكول يستخدم لإرسال الحزم ، تمامًا كما يصفه الاسم.
انظر أدناه للحصول على شرح لمختلف الأدوات ، بما في ذلك أداة Linux المسماة Traffic Control (tc).
(TCP)يوجه TCP نظام التشغيل Linux إلى كيفية انتقال الحزم من مكان إلى آخر. (Linux)كما أنه يتحكم في حركة مرور الشبكة ويوجه نقل حزم المعلومات (مثل مجلدات البيانات(data) التي تنتقل من مكان إلى آخر).
هذا هو السبب في أن البروتوكول يسمى بروتوكول التحكم(Transmission Control Protocol) في الإرسال (TCP).
بروتوكول الإنترنت (IP)(Internet Protocol (IP))
(Internet Protocol)يشار إلى بروتوكول الإنترنت بشكل عام باختصار IP.
في حالة IP لديك منطقة أوسع ( الإنترنت(Internet) ) لإرسال الحزم. إنه يشبه وجود طريق سريع فائق أوسع وأطول وأكثر ازدحامًا ... يسمى الإنترنت. بينما يتحكم TCP في حركة الحزم عبر الشبكة ، يتحكم IP في حركة الحزم عبر الإنترنت.
بروتوكول ICMP(ICMP Protocol)
ICMP هي(ICMP) اختصار لـ Internet Control Messaging Protocol . على الرغم من أنه بروتوكول متاح في معظم توزيعات Linux(Linux) ، فقد لا يكون متاحًا في جميع توزيعات Linux(Linux) . يتضح هذا من خلال عدم وجود صفحة رجل(Man) داخل تثبيت Centos الحالي .
للوهلة الأولى ، قد لا يبدو أن هذا البروتوكول بالذات ضروري ولكنه في الواقع كذلك. تعد ICMP(ICMP) مسؤولة عن تقديم رسائل الخطأ إذا / عندما لا تصل الحزمة بشكل صحيح إلى وجهتها. تعد ICMP(ICMP) ضرورية لتلقي تحديثات الحالة عند تسليم (أو استلام) حزم المعلومات التي يتم إرسالها.
بروتوكول مخطط المستخدم (UDP)(User Diagram Protocol (UDP))
بروتوكول مخطط المستخدم(User Diagram Protocol) ( UDP ) ، مثل بروتوكول التحكم(Transmission Control Protocol) في الإرسال ( TCP ) ، هو بروتوكول لنقل حزم المعلومات من نقطة إلى أخرى. في حالة TCP ، كجزء من العملية / الإرسال ، هناك تحقق من التسليم الناجح للحزمة (الحزم) ، مما يجعلها أكثر موثوقية من UDP .
في حالة UDP ، لا توجد عملية تحقق ، لذا لن تعرف ما إذا كانت الحزم قد تم إرسالها أو استلامها بنجاح وبدون أخطاء. على هذا النحو ، إنه بروتوكول سهل الاستخدام بدرجة كافية ولكنه غير قابل للتحقق أو لا يمكن المصادقة عليه.
تكوين Linux(Linux Configuration)
هناك العديد من ملفات التكوين المتاحة في نظام التشغيل Linux .
على سبيل المثال ، إذا كنت تقوم بتشغيل خادم Apache على جهاز (Apache)Linux الخاص بك ، فإن ملفات تكوين Apache مهمة. تتيح هذه الملفات لخادم الويب Apache معرفة ما يحدث مع المجال وبشكل أكثر تحديدًا ، الموقع المستضاف على هذا الخادم.
أحيانًا يتم تسمية ملف التكوين باسم httpd.conf. أحيانًا يتم تصنيفها على أنها apache.conf. أو يمكن أن يكون تسمية / اسمًا مختلفًا تمامًا. قد تجد ملفات التكوين في موقع واحد على خادم واحد ، وفي أحيان أخرى تكون في موقع مختلف تمامًا على خادم آخر.
لحسن الحظ ، هناك أوامر مفيدة قد تساعد في تحديد موقع ملفات التكوين المحددة. على سبيل المثال ، يمكنك كتابة ما يلي لتحديد موقع ملف التكوين “ httpd.conf ” ، إذا كان موجودًا:(httpd.conf)
find / -name “httpd.conf”
الكلمة الأولى ، "اعثر" ، دع Linux يعرف الأمر / الأداة المساعدة التي تستخدمها ، والتي في هذه الحالة هي الأداة المساعدة "find". المكون الثاني من سطر الأوامر هو "/" الذي يتيح لأداة البحث معرفة أنه يجب أن يبحث في المسار بدءًا من المستوى الجذر للخادم.
إذا كنت تبحث في موقع أكثر تحديدًا ، فقد يكون لديك شيء مثل "/ etc" لإعلام Linux بالبدء في الدليل etc واتباع هذا المسار. من خلال توفير مسار / موقع محدد ، يمكنك تسريع العملية على الأرجح ، لأن Linux لا يضطر إلى البحث في الأماكن الزائدة عن الحاجة.
يتيح خيار " -name " (-name)لنظام Linux(Linux) معرفة ما تبحث عنه في اسم الملف أو الدليل. من المفيد تضمين الاسم بين علامات اقتباس ، ويمكنك أيضًا استخدام علامة النجمة (*) كبطاقة بدل عند البحث.
تتضمن بعض أمثلة ملفات الإعداد والأدلة في المسار / الدليل "/ etc" ما يلي:
- pam.d - دليل يحتوي على أدوات مساعدة متعلقة بوحدات المصادقة. تم العثور على "Su" و "sudo" هناك ، كمثال.
- sysconfig - دليل يتضمن وظائف الكمبيوتر ، مثل إدارة الطاقة والماوس وغير ذلك.
- resolv.conf - ملف يساعد في وظائف خادم اسم المجال ، إذا تم استخدام جهاز Linux بهذه السعة.
- الخدمات(services) - يحتوي هذا الملف على الاتصالات المتاحة (مثل المنافذ المفتوحة) المتوفرة على جهاز Linux .
إذا كنت تتساءل عما إذا كانت أي ملفات أو مسارات أو أدوات مساعدة قديمة أو مهملة ، فاستخدم صفحات الدليل للتحقق. هذه طريقة مفيدة لمتابعة ما هو حديث وما تغير.
فهم نظام ملفات Linux(Understanding the Linux File System)
في العديد من توزيعات Linux(Linux distributions) ، توجد ملفات التكوين في دليل البرامج النصية للشبكة تحت المسار “ etc/sysconfig ”. إذا لم يكونوا موجودين هناك ، فمن المحتمل أن يكون هناك موقع / مسار مشابه. تظهر الملفات الموجودة في هذه الحالة بالذات في لقطة الشاشة أدناه.
كما سترى في لقطة الشاشة أدناه ، يوجد ملفان للتهيئة. يتم تصنيف كل واحد منهم وفقًا للواجهات الخاصة به (مثل ifcfg-eth0).
ملفات التكوين مسبوقة بـ " ifcfg " الذي يحل محل الأمر ifconfig(ifconfig command) (بالإضافة إلى أن يصبح جزءًا من اسم ملف الواجهة). ومع ذلك ، فقد تم استبداله الآن إلى حد ما أيضًا لأن ifcfg غير متوافق مع IPv6 .
تشير مراجع الواجهتين ( ifcfg-eth0 و ifcfg-lo ) إلى أنواع محددة من الواجهات. كان مطورو Linux(Linux) مفيدون في هذا المجال ، حيث قدموا التعريف والتوجيه في شكل أسماء الملفات. في حالة الواجهة المنتهية بـ " eth0 " ، فهي واجهة متصلة عبر "إيثرنت" أو بها إمكانية إيثرنت.
يوجهك استخدام الحروف " eth " إلى الاتجاه الصحيح. الرقم الذي يلي "eth" يوفر رقم الجهاز. لذا ، قد يكون جهاز إيثرنت التالي شيئًا مثل " ifcfg-eth1 " وما إلى ذلك.
يشير اسم الملف الذي ينتهي بـ "lo" إلى واجهة "loopback". يُشار إليه أيضًا باسم " المضيف المحلي(localhost) ". هذا اتصال شبكة ليس اتصال شبكة حقيقي من الناحية الفنية. إنه يسمح ببساطة للعمليات بالاتصال على الجهاز دون الاتصال عبر الشبكة. فكر في "افتراضي" عند التفكير في هذه الواجهة المعينة.
جميع توزيعات Linux(Linux) قادرة على الحصول على استرجاع (أو مضيف محلي) وعادة ما يتم إعدادها لواحد بشكل افتراضي. يستخدمون واجهة تنتهي بـ "-lo". عادةً ما يكون عنوان IP الخاص بالمضيف المحلي هو 127.0.0.1. في كثير من الحالات ، يمكن استخدام واجهة الاسترجاع الافتراضية لاختبار الاتصالات واستبعاد مشكلات الشبكة المحتملة الأخرى.
الملفات(The Files)
هناك طرق مختلفة لتحرير ملفات التكوين (بالإضافة إلى عرضها). تتمثل إحدى الطرق في استخدام " محرر vi(vi editor) " الذي يتم الوصول إليه عبر الأمر " vi " متبوعًا باسم الملف. في هذه الحالة ، عندما يكتب المرء " vi ifcfg-eth0 " (بدون علامتي الاقتباس) ، فإنه يكون قادرًا على عرض معلومات الشبكة لتلك الواجهة المحددة (eth0).
ومع ذلك ، سيكون من الأفضل القيام بذلك بالطريقة التقليدية واتباع تعليمات تكوين الشبكة الموجودة في صفحة الدليل لـ ifcfg.
قد يكون هذا أيضًا أسهل بالنسبة للأشخاص غير التقنيين. يتطلب استخدام محرر vi القليل من الاهتمام بالتفاصيل ، لذا إذا كنت مهتمًا بالتفاصيل (أو كنت بالفعل مبرمجًا أو مسؤول نظام) ، فقد يكون محرر vi هو الحل الأمثل عند العمل مع ملفات تكوين Linux .
عند الوصول إلى صفحات الدليل ، يمكننا مراجعة المعلومات حول البرنامج النصي ifcfg الذي حل محل البرنامج النصي ifconfig (كما هو موضح في لقطة الشاشة أعلاه لصفحة الدليل). أيضًا ، عند النظر إلى قائمة الواجهات في توزيع Linux ، نلاحظ أمري ifup و ifdown. يمكن مراجعة هؤلاء أيضًا في صفحة (صفحات) الدليل الخاصة بهم.
تظهر لقطة شاشة لصفحة الدليل في الصورة أدناه. كما سترى في صفحة الدليل ، هناك ملفات تكوين Linux إضافية (ومسارات للوصول إلى هذه الملفات) يمكن الرجوع إليها (وتعديلها) في إعداد وتكوين ملفات TCP/IP على Linux .
إذا كنت تستخدم محرر نص سطر أوامر مثل محرر vi لعرض ملف التكوين ، فستلاحظ بعض الخيارات التي تم تحديدها. على سبيل المثال ، عند النظر إلى واجهة الشبكة ، قد ترى كلمات بأحرف كبيرة متبوعة بعلامة يساوي (=) ، ثم كلمة أخرى.
على سبيل المثال ، قد يكون هناك توجيه هو " ONBOOT " وقد يقول "ONBOOT = نعم" كمثال لخيار التكوين. هناك العديد من نقاط التكوين والخيارات الأخرى أيضًا. على سبيل المثال ، واحد آخر هو NETMASK .
إذا رأيت توجيه التكوين ، " NETWORKING " ، فيجب أن يتبعه "نعم". إذا كان متبوعًا بعلامة "لا" ، فقد يمثل ذلك مشكلة لأن ذلك قد يشير إلى أن واجهة الشبكة غير نشطة للشبكات.
فيما يلي عملية خطوة بخطوة لتصحيح الموقف الذي تم وصفه للتو:
- قم بعمل نسخة من ملف التكوين ، لتكون بأمان. هناك بضعة طرق لفعل هذا. أحد أسهلها هو نافذة الأوامر.
اكتب: cp ifcfg-eth0 ifcfg-eth0_20200101
ثم في السطر التالي ، اكتب: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101
هذا إلى نقل نسخة الملف التي أنشأتها للتو إلى الدليل الذي تستخدمه للنسخ الاحتياطية.
- الآن بعد أن قمت بعمل نسخة احتياطية من ملف التكوين ، حان الوقت لإجراء تغييرات على ملف التكوين هذا. إذا كنت تستخدم محرر vi ، فاكتب ما يلي:
vi ifcfg-eth0
بعد القيام بذلك ، سيتم فتح الملف في تطبيق Terminal / command (على غرار الطريقة التي تفتح بها صفحة man عند تشغيلها).
بمجرد فتح ملف التكوين ، يمكنك البحث عن السطر الذي يتضمن " NETWORKING=no " وحذف هذا السطر أو قم بتغييره إلى "NETWORKING = نعم". يمكن عمل ذلك باستخدام " cw"التوجيه في محرر vi. عن طريق كتابة شرطة مائلة للأمام ، فأنت تخبر محرر vi أنك تبحث عن شيء ما. في هذه الحالة ، تسمح للمحرر بمعرفة أنك تبحث عن "NETWORKING" وعندما يتم العثور عليها (توجيه الماوس إلى هذا الموقع) يمكنك استخدام مفتاح السهم الأيمن للانتقال إلى كلمة "لا".
عندما تصل إلى كلمة "لا" ، توقف عند "n" واكتب " cw " مما يسمح لك بتغيير "لا" إلى "نعم". يشير الحرف "cw" إلى كلمة التغيير ويسمح لك Linux بتغيير الكلمة بأكملها من كلمة ("لا") إلى أخرى ("نعم"). إذا أردت تغيير حرف واحد فقط ، يمكنك استخدام "r" لاستبدال حرف أو حرف واحد.
تظهر لقطات هذه العملية أدناه.
- بعد حفظ ملف التكوين (أي كتابة esc للخروج من وضع INSERT ثم كتابة حرف Z مزدوج لحفظ الملف) ، حان الوقت لإعادة تشغيل الخدمة أو الكمبيوتر. يمكن القيام بذلك بعدة طرق مختلفة. تتمثل إحدى طرق إعادة تشغيل الكمبيوتر في كتابة سطر الأوامر التالي:
shutdown -r now
يخبر الأمر shutdown جهاز Linux بالإغلاق. يخبر الخيار -r الأمر بأنه ليس مجرد إيقاف تشغيل ، بل هو إعادة تشغيل ويقوم بذلك الآن.
نصيحة:(Tip:) إذا كنت تريد معرفة وقت انتهاء الكمبيوتر أو الخادم من إعادة التشغيل ، فاكتب "ping" ثم عنوان IP العام للكمبيوتر / الخادم (أو اسم مجال لموقع مستضاف على خادم Linux ).
باستخدام الأمر ping ، سترى أن الخادم ليس "pingable" (وهو ما يحدث أثناء إعادة التشغيل) وبعد ذلك عند إعادة تشغيل الخادم بنجاح ، سيستجيب ping باستجابة إيجابية ، مما يشير إلى نجاح إعادة التشغيل.
فيما يلي بعض الصور التي تساعد في توضيح الخطوات المذكورة في القائمة أعلاه.
الخطوة 1:
الخطوة 2:
نصيحة:(Tip:) ضع في اعتبارك أنه لا يوجد شيء فريد في عالم الخادم. على سبيل المثال ، يمكنك تغيير التكوين لواجهة معينة (في هذه الحالة eth0) ولكن قد يكون ذلك مجرد واجهة واحدة على الشبكة وقد يتأثر (أو يؤثر) على خادم آخر.
لذلك ، في المثال أعلاه ، من خلال إعادة تشغيل الخادم ، سيؤدي ذلك إلى تشغيل أجهزة الشبكة لإعادة التشغيل أيضًا. هذا ليس الخيار الوحيد لهذه الواجهة ولكن هذه الواجهة ستتأثر بأمر إعادة التشغيل.
/etc/hosts File(s)
قد يكون الملف /etc/hosts موجودًا أو غير موجود. إذا كان موجودًا ، فقد يتم استخدامه أو لا يتم استخدامه في التكوين. على سبيل المثال ، قد يكون لديك نظام مختلف يتعامل مع تكوينات المضيف ، بدلاً من إدارة الملف مباشرةً. أيضا ، ملف المضيفين نفسه يختلف. على سبيل المثال ، يتعامل IPv4 و IPv6 مع التكوين بشكل مختلف ، كما ترى في الصورة أدناه.
Configuration Files; Locations/Paths; Terms; and More
بعض أسماء الملفات الإضافية ومواقع الملفات المفيدة هي:
- / etc / sysconfig / network-scripts / (مسار ملف التكوين)
- / etc / sysconfig / network-scripts / ifcfg-eth0 (ملف التكوين)
- / etc / hosts (ملف التكوين)
- /etc/resolv.conf (ملف التكوين بمعلومات خادم الأسماء)
في كثير من الحالات ، يقوم برنامج النظام أو الخادم بإنشاء ملفات التكوين تلقائيًا. أيضًا ، إذا تم استخدام DHCP ، فهناك جوانب أخرى من تكوين الشبكة يتم حسابها أثناء التنقل ، نظرًا لعدم استخدام عناوين IP الثابتة في هذه الحالة.
تم (أو يتم) استخدام أوامر سطر الأوامر (CL) التالية في معظم توزيعات Linux. عندما تكون قديمة أو مهملة ، يتم سرد أمر الاستبدال.
- المسار(route) ( obsolete / deprecated ): تم استخدامه لإظهار المسارات وتعديلها. تم استبداله بواسطة IP route .
- اسم المضيف(hostname) : يستخدم لعرض أو تعديل وتحرير اسم مضيف الجهاز.
- netstat : عرض اتصالات الشبكة وجداول التوجيه وإحصائيات الواجهة وعضويات البث المتعدد وما إلى ذلك.
- ARP : ( obsolete / deprecated ) يستخدم لإظهار معلومات IPv4 ؛ على وجه التحديد ذاكرة التخزين المؤقت شبكة الجوار. أصبح IPv6(IPv6) عنوان الشبكة ، ليحل محل مجموعة IPv4 المكونة من أربعة أرقام مفصولة بنقاط. في ضوء هذه التغييرات ، تم استبدال هذا الأمر المتقادم بـ ip neigh .
- ip : لا يشير IP فقط إلى "بروتوكول الإنترنت" و WAN النهائي (شبكة واسعة النطاق ") ولكنه أيضًا أداة مساعدة تتيح لمسؤول النظام أو مستخدم الكمبيوتر القدرة على عرض معلمات TCP/IP بالإضافة إلى تعيينها ضروري.
- tc : هذا يعني "التحكم في حركة المرور" وهو أداة مساعدة للمساعدة في إدارة حركة المرور الواردة والصادرة على جهاز Linux .
أدوات التكوين: واجهة المستخدم الرسومية مقابل. سطر الأوامر (CL)(Configuration Tools: GUI Vs. Command Line (CL))
لتوفير نقطة مرجعية ، تعرض الصور الثلاث التالية آلية واجهة مستخدم رسومية ( GUI ) للتعامل مع تكوين الشبكات ، بما في ذلك TCP/IP .
الصورة الأولى هي Apple Mac GUI ( System Preferences > Networking ) والصورتان الثانيتان هما صورة نظام التشغيل Windows(Windows Operating System) (على الرغم من أنه يختلف من إصدار إلى آخر). يتم الوصول إليه عبر لوحة تحكم Microsoft(Microsoft Control Panel) واتصالات الشبكة(Network Connections) ، كما ترى في لقطات الشاشة.
إيجابيات وسلبيات واجهة المستخدم الرسومية مقابل محرر النصوص أو سطر الأوامر (CL)(Pros and Cons of GUI Versus Text Editor or Command Line (CL))
في حين أن العديد من الأشخاص يفضلون واجهات المستخدم الرسومية ( GUI ) نظرًا لسهولة استخدامها وعرضها المرئي وبساطتها بشكل عام ، فمن المفيد فهم ملفات التكوين (في هذه الحالة المتعلقة بالشبكات) حتى تتمكن من استكشاف أي مشكلات وإصلاحها.
قد ترغب في الحصول على واجهة المستخدم الرسومية(GUI) أولاً ولكن من المفيد أن تكون على دراية كاملة ... فقط في حالة. أيضًا ، هناك بعض أنظمة التشغيل التي لا تحتوي بالضرورة على واجهة مستخدم رسومية(GUI) (أو ليس لديها واحدة حتى الآن) مرة أخرى ؛ من المفيد أن تكون مستعدًا.
في القسم التالي سنغطي ملفات التكوين وكيفية الوصول إليها وتحديثها بالإضافة إلى إدارة الملفات والأدوات المساعدة.
أدوات سطر أوامر Linux (CL) والأدوات المساعدة والبرامج النصية و Daemons(Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons)
هناك العديد من الأدوات المتوفرة لتوزيعات Linux(Linux) . مرة أخرى(Again) ، مثل الأوامر الأخرى ، هناك أوجه تشابه (واختلاف) بين كيفية استخدام هذه الأدوات في التوزيعات المختلفة. في بعض الحالات ، تتوفر الأدوات ولكن يلزم تثبيتها أولاً ، وغالبًا ما تختلف عملية التثبيت.
غالبًا ما يشار إلى أداة سطر الأوامر باسم shell وفي الأيام الأولى ، المحطة الطرفية(terminal) . هناك مصطلحات أخرى لها ولكن بشكل عام ، هو تطبيق يسمح للمستخدم بالوصول إلى أنظمة التشغيل عن طريق كتابة الأوامر في نافذة.
لنلقِ نظرة على بعض الأمثلة. الأول من نظام التشغيل Windows ومن المحتمل أن يبدو مألوفًا لمستخدمي Windows . يتم فتح الأداة عن طريق كتابة CMD (كما هو موضح في لقطات الشاشة أدناه).
لقطة الشاشة الثانية هي تلك الخاصة بتطبيق يسمى Terminal والذي يأتي مثبتًا مسبقًا على معظم أجهزة كمبيوتر Apple .
NSLookup (NSLOOKUP)
في حالة nslookup ، فإن ns تعني خادم الأسماء(nameserver) وجزء البحث(lookup) من الأمر هو "بحث" عن المعلومات. لذا ، ما يخبرنا به اسم هذه الأداة هو أنها ستبحث عن المعلومات المتاحة بشكل عام عبر خادم الأسماء.
NSLookup هي أداة يدوية. في هذه الحالة ، نستخدمه للبحث عن معلومات حول eBay. من أجل القيام بذلك ، نكتب "nslookup ebay.com" وقد قدمنا معلومات مشابهة لما هو معروض في الصورة أدناه.
يتم عرض الأمر أعلى لقطة الشاشة (بعد تعتيم المعلومات الخاصة). بعد ذلك ، يتم عرض الإخراج من هذا الطلب ( nslookup ) أدناه ، مع معلومات مثل الخادم(Server) (عنوان IP العام) ، وعنوان IP(IP address) المحدد ، وما إلى ذلك.
التحكم في حركة المرور (ح)(Traffic Control (tc))
أداة أخرى هي أداة "التحكم في حركة المرور" (يشار إليها أيضًا باسم "tc"). إنها أداة تسمح بجدولة حزم البيانات ومعالجتها.
يخبرك الأمر بكيفية(how) تحرك الحزم عبر الشبكة. يتضمن هذا الجانب إجابات لأسئلة مثل التوقيت والسرعة والأجهزة والمزيد . (how)فيما يلي تمثيل لسطر الأوامر (CL) لاستخدام التحكم في حركة المرور(Traffic Control) (ح):
في حين أنه قد يبدو مثل "هراء" للبعض ، فإن كل كلمة في سطر الأوامر تمثل شيئًا مهمًا. هنا القائمة:
- ح(tc) : هذه هي الأداة ، في هذه الحالة "التحكم في حركة المرور" (المعروف أيضًا باسم "tc"). هذا يخبر تطبيق / برنامج سطر الأوامر بأداة Linux التي يجب استخدامها.
- qdisc : يشير هذا الاختصار إلى انضباط قائمة الانتظار(queuing discipline) وهو طريقة أخرى لوصف برنامج جدولة بسيط.
- add : نظرًا لأننا نبني تكوينًا (نعم ، ملفًا تقنيًا) ، فإننا نخبر الأداة بأننا نضيف(adding) إلى عناصر التحكم.
- dev eth0 : يشير "dev" إلى "الجهاز" ، مما يتيح للأداة معرفة أننا على وشك تحديد الجهاز. في هذه الحالة ، "eth0" هو المرجع للجهاز. ستلاحظ أن هذا مشابه لما يظهر في واجهة المستخدم الرسومية ( GUI ) لتسمية الجهاز.
- الجذر(root) : يخبر هذا الأداة أننا نقوم بتعديل حركة المرور الصادرة من مستوى الجذر أو الخروج.
- netem : تمثل هذه الكلمة عبارة "محاكي الشبكة". على الرغم من أنها قد لا تكون شبكة الأجهزة ، إلا أنها تحاكي نفس الشيء. هذا مشابه لكيفية محاكاة برنامج Parallels لبرنامج Windows لأجهزة كمبيوتر Apple . من المؤكد أنه برنامج مختلف تمامًا ولكنه برنامج محاكاة بنفس الطريقة التي يحاكي بها netem شبكة. في هذه الحالة ، يمثل netem شبكة WAN (شبكة واسعة النطاق) بدلاً من LAN (شبكة المنطقة المحلية).
- تأخير(delay) : تخبر هذه الكلمة أداة tc بأننا نقوم بتعديل مكون "تأخير" للمعاملة.
- 400 مللي ثانية(400ms) : لقد أخبرنا الأداة بالفعل أننا نؤثر على التأخير ، لكننا الآن بحاجة إلى تحديد مدى تأثيرنا على التأخير. في هذه الحالة ، تبلغ 400 مللي ثانية.
مدير الشبكة(Network Manager)
الغرض من مدير الشبكة(Network Manager) هو تبسيط تكوين الشبكة وأتمتة. بالنسبة لمستخدمي DHCP ، يمكن (DHCP)لمدير الشبكة(Network Manager) الحصول على عنوان IP ، وإلغاء المسارات الافتراضية واستبدال خوادم الأسماء تلقائيًا.
تتوفر أداة nmtui لاستخدام Network Manager في معظم (Manager)توزيعات Linux(Linux) ، وليس كلها . أيضًا ، ضع في اعتبارك أن بعض الأدوات "متوفرة" ولكنها غير متوفرة حتى الآن. بمعنى آخر ، هناك بعض الأدوات والعفاريت التي يجب تثبيتها ولا تأتي بالضرورة مثبتة مسبقًا على توزيعة Linux(Linux) المعنية.
مواضيع الشبكات الأخرى(Other Networking Topics)
هناك العديد من جوانب الشبكات و TCP/IP التي تعتبر رائعة بشكل خاص ، خاصة عند التعامل مع توزيعة Linux(Linux) . لا(Don) تنس أن لديك صفحات دليل (وتعرف أيضًا باسم صفحات الرجل) متاحة داخل تثبيت Linux . لذلك ، في حين أن هذا قد يبدو وكأنه نوع من قائمة غير مرتبطة بما لا يجب عليك فعله ، يمكنك دائمًا استخدام صفحة رجل لمعرفة ما يجب عليك فعله.
لينكس هو جهاز التوجيه(Linux as the Router)
في هذه الأيام ، يستخدم معظم الأشخاص الأجهزة المخصصة لمهمة التوجيه (أي جهاز التوجيه) لإدارة مهمة توجيه الشبكة(manage the network route task) .
في كثير من الأحيان ، يكون ذلك بسبب أن أجهزة التوجيه جزء من صفقة الحزمة مع حزم / عقود الإنترنت في المنزل أو المكتب. عادة ما يتم القبض على العميل وهو يدفع رسوم إيجار / إيجار شهريًا (أو سنويًا) أو يضطر إلى شراء جهاز التوجيه.
ومع ذلك ، لا توجد حاجة كبيرة لأن يعمل Linux كموجه على الرغم من قدرته على العمل كجهاز توجيه. تخلق السيناريوهات الموضحة أعلاه موقفًا شبه زائف للإهمال لنظام Linux ، لكن هذا لا يعني أن Linux خارج اللعبة تمامًا. من الممكن إعداد خادم Linux كموجه للأجهزة (والبرامج اللاحقة) إذا كنت بحاجة إلى ذلك.
مسار IP (المعروف سابقًا باسم "المسار")(IP Route (Formerly “Route”))
تُظهر الصورة التالية لقطة شاشة لصفحة الدليل الخاصة بـ "المسار" والتوجيهات الممكنة باستخدام هذه الأداة.
SNORT - نظام كشف الدخيل(SNORT – An Intruder Detection System)
Snort Software عبارة عن نظام مفتوح المصدر للكشف عن التسلل(Intrusion Detection System) ( IDS ) تم تطويره في الأصل بواسطة Martin Roesch ومنذ ذلك الحين تم الحصول عليه بواسطة Cisco Systems(Martin Roesch and since acquired by Cisco Systems) . إنه يعمل على أساس القواعد التي تستخدم طبقات TCP/IP للشبكة. تحديد تلك القواعد يحدد التدخلات لحماية الشبكة.
How to Set Up Linux > TCP/IP Settings for Linux
ستساعدك البرامج التعليمية المصغرة التالية في بعض المهام الشائعة التي قد تصادفها في عالم Linux .
ضع في اعتبارك أن الأوقات تتغير بسرعة ، لذلك من المفيد استخدام صفحات الرجل الخاصة بك وكذلك عمليات البحث في Google للتحقق من الخطوات التالية والتأكد من عدم وجود أي أدوات أخرى قد تؤدي المهمة بشكل أفضل. حتى كتابة هذا المقال ، لم يكن الأمر كذلك.
البرنامج التعليمي 01: تعيين عنوان IP ثابت لجهاز Linux(Tutorial 01: Assigning a Static IP Address to a Linux Machine)
السؤال الأول الذي يجب أن تطرحه هو ما إذا كان الكمبيوتر / الخادم يحتاج أم لا إلى عنوان IP ثابت (عنوان لا يتغير) أو عنوان IP قابل للتغيير (مثل DHCP - بروتوكول التكوين الديناميكي للمضيف(DHCP – Dynamic Host Configuration Protocol) ). إذا كان هذا هو جهاز الكمبيوتر الشخصي الخاص بك (وليس خادمًا) ، فمن المحتمل أنك تستخدم DHCP للوصول إلى الإنترنت.
ما يعنيه ذلك هو أنك لست مضطرًا للعبث بتعيين عنوان IP ثابت لجهاز الكمبيوتر الخاص بك. يقوم مزود خدمة الإنترنت ( ISP ) وأي جهاز يتم توفيره / تأجيره تلقائيًا بحساب عنوان IP سريعًا لتمكينك من الاتصال بالإنترنت. بمعنى آخر ، إذا لم تكن بحاجة إلى عنوان IP ثابت ، فإن تغيير العنوان ديناميكيًا يعد أمرًا جيدًا لجهاز الكمبيوتر الذي لا يستخدم الخادم.
إذا كان لديك خادم وتريد أن يكون في متناول الآخرين (على سبيل المثال خارج منزلك ؛ شبكة WAN/internet ؛ غير شبكة LAN) ، فستحتاج إلى عنوان IP ثابت بحيث يتم تعيين النطاق الذي تستخدمه إليه عبر خادم أسماء الاستضافة المخصص للمجال ، أو يمكن الوصول إليه مباشرة عبر عنوان IP الثابت.
إذا لم يكن هناك من يحتاج إلى الوصول إلى جهاز الكمبيوتر أو الخادم الخاص بك خارج منزلك ، فإن تغيير عنوان IP (ديناميكي ؛ غير ثابت) أمر جيد ، لأنه لا يوجد أحد يستخدم عنوان IP ثابتًا.
ملاحظة: استخدم بعض الأشخاص عنوان IP DHCP(DHCP IP) للوصول العام (نعم ، حتى كخادم) ولكن ،
- يتطلب الأمر شخصًا ذا عقلية فنية جدًا للقيام بذلك ، لذلك فهو ليس شائعًا.
- من الصعب الحفاظ عليه (بسبب طبيعته المتغيرة باستمرار) من عنوان IP الثابت.
إذا كنت بحاجة إلى عنوان IP ثابت ، فتابع واتبع الخطوات هنا. إذا لم يكن كذلك ، يمكنك تخطي هذا القسم.
كما سترى ، فإن الأمر (الموضح أعلاه) يتضمن "sudo" في بداية السطر. في حين أنه من الممكن استخدام الأمر "su" (المستخدم المتميز) وتسجيل الدخول بصفتك المستخدم المتميز ، فإن استخدام "sudo" يؤدي فقط إلى تشغيل هذا الأمر بصفته مستخدمًا متميزًا.
الطريقة الأخرى ، تسجيل الدخول كمستخدم متميز ، تسمح بإكمال جميع المهام كمستخدم متميز ، مما يجعل القيام بما يجب القيام به أكثر ملاءمة.
ومع ذلك ، يأتي إلى جانب ذلك خطرًا أمنيًا ، وهذا هو السبب في أنه من الأكثر أمانًا بدء الأمر ببساطة باستخدام sudo والسماح للتطبيق بطلب كلمة مرور (حسب الحاجة) لإكمال الأمر كمستخدم متميز لتلك المهمة / الأمر.
الخيار لك ويجب أن يعتمد على أي طريقة أسهل. يتم الوصول إلى الملف الذي تمثله لقطة الشاشة أدناه عبر الأمر التالي:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
قبل استخدام هذا الأمر ، يتم التحقق من رقم جهاز الشبكة (eth0) للتأكد من صحته. كما تتذكر ، تتم إدارة تكوينات Linux داخل ملف الواجهة ، لذا من الضروري التحقق من رقم الواجهة من هذا الملف قبل تحرير ملف التكوين.
هناك جانب آخر يجب الانتباه إليه في ملف التكوين وهو استخدام كلمة "ثابت". نظرًا لأننا نضيف عنوان IP ثابتًا ، فمن المهم السماح لملف التكوين بمعرفة أن هذا هو الحال.
تمت إضافة الملاحظات في لقطة الشاشة أدناه لأسباب توضيحية ، ولكن لا ينبغي تضمينها في ملف التكوين الخاص بك. أيضًا ، في بعض توزيعات Linux(Linux) ، تكون علامات الاقتباس مطلوبة. في ملف التكوين المحدد هذا ، لم تكن علامات الاقتباس موجودة في ملف التكوين الذي تم إنشاؤه تلقائيًا ، لذا استمر هذا الاتجاه ولم تتم إضافة علامات اقتباس.
توضح لقطة الشاشة التالية كيف سيظهر الملف بالفعل ، مع إزالة الملاحظات والمسافات الزائدة.
يتم الوصول إلى ملف التكوين التالي (والنهائي) المراد تحريره عن طريق كتابة:
sudo vi /etc/resolv.conf
ضمن هذا الملف ، يمكن إضافة خوادم الأسماء (أو تعديلها). يجب أن تتطابق خوادم الأسماء هذه مع ملف التكوين الآخر الذي تم تعديله للتو. في هذه الحالة ، في /etc/sysconfig/network-scripts/ifcfg-eth0 (لقطة الشاشة أعلاه).
الصيغة التي سيتم استخدامها هي "خادم الأسماء". لذلك ، حيث يعرض ملف تكوين الجهاز DNS1=8.8.8.8 ، يجب أن يعرض ملف resolv.conf خادم الأسماء 8.8.8.8(nameserver 8.8.8.8) .
سيظهر نظير DNS2=4.4.4.4 أسماء 4.4.4.4(nameserver 4.4.4.4 ) في ملف resolv.conf.
بشكل فضفاض ، تعمل الخطوات المذكورة أعلاه على توزيعة Red Hat Linux(Red Hat Linux) ، لكن ليس هناك ما يضمن أنها ستعمل في المستقبل ، مع التغييرات التكنولوجية التي تحدث. هذا هو السبب في ضرورة اختبار التكوينات والتحقق منها.
بمجرد اكتمال التكوينات ، أعد تشغيل واجهة الشبكة بالطريقة المفضلة كما هو موضح أعلاه. سيؤدي هذا إلى تطبيق التغييرات. من المفيد أيضًا أن يتم اختبار عنوان IP الثابت. يمكنك القيام بذلك عن طريق محاولة الاتصال بعنوان IP العام الثابت هذا من جهاز آخر (يفضل على شبكة مختلفة).
يمكنك أيضًا الاتصال بصديق أو شريك وجعله يحاول الاتصال بعنوان IP الثابت من موقع جغرافي آخر (وشبكة مختلفة).
البرنامج التعليمي 02: الاسم المستعار لعنوان IP للشبكة(Tutorial 02: Network IP Aliasing)
من الممكن تعيين أكثر من عنوان IP واحد لبطاقة واجهة الشبكة ( NIC ). يُطلق على ذلك اسم مستعار لعنوان IP للشبكة(Network IP Aliasing) لأن عنوان IP واحد فقط هو عنوان IP فعلي ، وبالتالي فإن عناوين IP الإضافية هي أسماء مستعارة لنفس البطاقة. لتعيين عنوان IP ، استخدم طريقتك المفضلة لتعيين عنوان IP كما هو موضح في البرنامج التعليمي 01.
لا يعني الأمر أنه يجب أن يكون ثابتًا ، ولكن من أجل تعيين عناوين IP متعددة باستخدام الاسم المستعار لعنوان IP للشبكة(Network IP Aliasing) ، يتعين على المرء تعيين عناوين IP باستخدام عنوان IP ثابت.
البرنامج التعليمي 03: تغيير اسم المضيف لجهاز Linux(Tutorial 03: Change Host Name of the Linux Machine)
استخدم الخطوات التالية لتغيير اسم المضيف لجهاز Linux الخاص بك باستخدام المحرر المفضل لديك:(Linux)
1. قم بتعديل ملف تكوين اسم المضيف عن طريق كتابة ما يلي في تطبيق سطر الأوامر:
sudo vi /etc/hostname
أينما ترى اسم المضيف القديم في ملف التكوين هذا ، استبدله باسم المضيف الجديد.
2. قم بتعديل ملف تكوين المضيفين عن طريق كتابة ما يلي في تطبيق سطر الأوامر:
sudo vi /etc/hosts
أينما ترى اسم المضيف القديم في هذا الملف ، استبدله باسم المضيف المختار / المعين حديثًا بنفس الطريقة التي فعلت بها مع ملف تكوين اسم المضيف(hostname) في الخطوة الأولى أعلاه.
3. أعد تشغيل الخادم أو كمبيوتر Linux . تتمثل إحدى طرق القيام بذلك (اعتمادًا على توزيعة Linux الخاصة بك ) في كتابة ما يلي في تطبيق سطر الأوامر:
sudo shutdown –r now
إعادة التشغيل هذه مطلوبة حتى تدخل التغييرات حيز التنفيذ.
البرنامج التعليمي 04: تمكين وتعطيل NIC الخاص بك(Tutorial 04: Enable and Disable Your NIC)
أحد أكثر الأشياء الرائعة التي يمكنك القيام بها عبر سطر الأوامر في Linux هو تمكين اتصال Ethernet أو تعطيله .
للقيام بذلك ، اكتب الأمر المناسب من هذين الأمرين:
sudo ip link setup
sudo ip link setdown
مع الإصدارات القديمة من Linux ، يمكنك تشغيل ifconfigup أو ifconfigdown ، ولكن من المحتمل أن تكون هذه الأوامر مهملة أو قديمة ضمن توزيعات Linux(Linux) الأحدث . في هذه الحالة ، يكون الأمر ip الأحدث هو الأفضل.
البرنامج التعليمي 05: تمكين إعادة توجيه الشبكة(Tutorial 05: Enable Network Forwarding)
نظام التشغيل Linux(Linux) الخاص بك قادر على توصيل مجموعة متنوعة من الشبكات ويمكن أن يعمل كجهاز توجيه. كل ما عليك فعله هو uncomment the net.ipv4.ip_fporward=1 line والذي سيمكنك من إعادة توجيه عنوان IP.
عادةً ما يتم تخزين ملف التكوين الضروري في /etc/sysctl.conf :
للحصول على أمثلة حول كيفية إعداده ، ألق نظرة على " How to enable IP forwarding on Linux (IPv4 / IPv6) ."
إذا كنت تقوم بإعداد خادم Linux باستخدام DHCP (بدلاً من عنوان IP الثابت) ، فيمكنك اختيار أحد أشكال إعادة توجيه الشبكة. هذا ليس شائعًا ، ولكن تمت الإشارة إليه هنا لأنه قابل للتنفيذ ويمثل حالة قد يميل فيها شخص ما للقيام بذلك.
البرنامج التعليمي 06: الأوامر عن بعد عبر Shell(Tutorial 06: Remote Commands Via Shell)
في حالة احتياجك للوصول إلى خادم Linux وعدم وجود هذا الخادم جغرافيًا في نفس المكان الذي تعيش فيه ، فقد تحتاج إلى استخدام أوامر بعيدة للوصول إلى خادم Linux البعيد هذا.(Linux)
بالنسبة لأولئك المبرمجين أو مسؤولي النظام ، يعد "الاتصال عن بُعد" بالخادم أمرًا عاديًا.
واحدة من أكثر الطرق شيوعًا للقيام بذلك هي استخدام الأمر “ ssh ” ، والسماح لتطبيق سطر الأوامر بمعرفة أنك تريد الوصول بأمان إلى خادم Linux ، حتى إذا كنت تفعل ذلك عبر اتصال غير آمن.
بالإضافة إلى استخدام الأمر "ssh" ، تحتاج إلى توفير معلومات عن مكان الاتصال وكيف (من بين الخيارات الأخرى المتاحة).
يمكنك استخدام اسم مجال للوصول إلى خادم Linux أو حتى عنوان IP ثابت عام. يخبر الاسم أو عنوان IP الأمر ssh بما يصل إليه ومكان العثور عليه.
قد تتضمن الخيارات الأخرى اسم المستخدم الذي سيتم استخدامه لتسجيل الدخول إلى الخادم البعيد. بدون تحديد هذا الخيار ، قد يتم طلبه ولكنه أيضًا خيار لتعريفه في نفس وقت الأمر ssh.
علي سبيل المثال:
ssh username myserver.com
يمكن أيضًا تكوين كلمة المرور في الأمر ولكن يوصى ، لأسباب أمنية ، بإدخالها في وقت الاتصال بالخادم البعيد.
لماذا ا؟ إذا تم كتابة كلمة المرور في الأمر ، بنص عادي ، فيمكن الوصول إليها من قبل الشخص التالي باستخدام نفس الكمبيوتر وسيكون بإمكانهم الوصول إلى كلمة المرور.
لأسباب أمنية إضافية ، قد ترغب في الوصول إلى خادم Linux عبر منفذ معين. من خلال تعيين منفذ يمكن استخدامه ، يمكنك حظر المنافذ الأخرى ومنع محاولات المتسللين أو هجمات DOS (رفض الخدمة).
هناك العديد من نقاط التكوين المختلفة لـ ssh. يتم سرد بعض هذه في موقع shellhacks.com(shellhacks.com) .
البرنامج التعليمي 07: أدوات مراقبة الشبكة(Tutorial 07: Network Monitoring Tools)
أحد المكونات المهمة لإدارة الشبكة هو التحقق من أن كل شيء يعمل ويستمر في العمل. يمكنك القيام بذلك من خلال مراقبة الشبكة. تختلف الأدوات التي تتلاءم مع مراقبة الشبكة ولكنها تحقق في النهاية أهدافًا وغايات مماثلة.
إحدى أدوات مراقبة الشبكة هي Cacti . Cacti هي أداة مراقبة شبكة مفتوحة المصدر. يراقب Cacti(Cacti) الشبكة ويوفر تمثيلات رسومية لما تم تسجيله. يساعد هذا المستخدمين (خاصة المبتدئين) على تحديد الأماكن التي قد تكون هناك مشكلات.
يمكن أن تستوعب الواجهة الأمامية الكثير من المستخدمين وتستخدم أحيانًا بواسطة خدمات الاستضافة لعرض معلومات النطاق الترددي في الوقت الفعلي وبيانات أخرى في الرسوم البيانية التالية ..
يمكن إدخال البيانات في Cacti عبر أي نص أو أمر خارجي. سيجمع Cacti(Cacti) البيانات معًا عبر مهمة cron ويملأ قاعدة بيانات MySQL قبل تقديمها كرسم بياني لمستخدم الواجهة الأمامية.
للتعامل مع جمع البيانات ، يمكنك تغذية المسارات إلى أي برنامج نصي / أمر خارجي بالإضافة إلى أي بيانات يحتاج المستخدم إلى "تعبئتها". سيقوم Cacti(Cacti) بعد ذلك بجمع هذه البيانات في مهمة cron وملء قاعدة بيانات MySQL .
Cacti هي أداة مفيدة لمسؤولي الشبكات الذين يرغبون في مراقبة استخدام الشبكة وتوفير صور مرئية سهلة الفهم للمستهلكين. يمكن تنزيل Cacti مجانًا على (Cacti)cacti.net . يتضمن موقع الويب وثائق لتثبيت وتكوين أداة مراقبة الشبكة.
بدائل Cacti التي يمكنك تجربتها تشمل Solarwinds NPM و PRTG و Nagios . ستدعم Solarwinds SNMP وكذلك ICMP/Ping و WMI و Netflow و Sflow و Jflow و IPFIX ، على سبيل المثال لا الحصر. تساعدك القوالب والرسوم البيانية والتنبيهات المعدة مسبقًا على بدء مراقبة شبكتك بسرعة.
يوفر PRTG(PRTG) ما يصل إلى مائة جهاز استشعار مجانًا. يحتوي على ميزات مشابهة لـ Solarwinds ، بالإضافة إلى تنبيهات وتطبيقات مرنة للهواتف الذكية(Smartphones) والأجهزة اللوحية وأجهزة iPad.
يحتوي Nagios(Nagios) على جميع الأدوات التي ستجدها في Cacti ، لكنه يتطلب مزيدًا من التهيئة. هناك الكثير من المكونات الإضافية للاختيار من بينها. تتمتع بسمعة طيبة باعتبارها واحدة من أقدم أدوات إدارة ومراقبة الشبكة. ولكن ، سيتعين عليك جعل يديك متسخين في صيانة ملفات التكوين الخاصة به.
How To Set Up & Configure TCP/IP Files On Linux (TCP/IP Settings For Linux)
Even non-geeks have likely heard of “TCP/IP” but does everyone know what it is or how to configure it on a Linυx server using the command line?
It helps to define basic terminology first. At the very least, it allows you to develop a framework on which to build your understanding. TCP/IP is no exception.
This section on terminology is not an exhaustive list. It’ll give you a basis on which to start your journey into understanding networking and how to configure TCP/IP files on Linux.
The *Nix World
Have you ever wondered what *nix means? What about how Unix and Linux are related (let alone all of the various versions of each)?
*nix is a method of referencing Linux and/or Unix (or any distribution) using a wildcard (the asterisk) to do so.
*Nix was developed in the late 1960’s. AT&T Bell Labs developed Unix at around the same time. hrough various iterations and developments, Linux was also born.
The result of these parallel innovations is that once you learn how to perform installations on one server via the command line, you’ve learned a skill that’s likely compatible with many other tasks on a variety of Unix or Linux servers.
Man Pages – Information at Your Fingertips
Much like Google, Linux has its own set of search and research tools that enable users to find the resources they need. Those resources are known as, “man pages.” When you are logged into a Linux server (or Linux-based operating system), you can open the command-line application and type in what you would like to research, like typing in a search term in an interactive documentation file.
If you pick a topic you want to research, like a Linux utility, tool, daemon, script, you can look that up by typing “man” and then the word. You will learn how to do this later in this article.
Man pages are easy to use. Just start typing a couple of words and the Linux OS will begin returning the information to you. If there’s no man page for a particular topic Linux will tell you that.
For the most part, man pages are reasonably accurate for the software version on which they appear. For example, if you are logged into a Linux server that’s 10 years old, the man page displays information relative to that version (and age).
Man pages are easy to use and accurate, but there are a couple of caveats. Let’s illustrate those caveat(s) via images.
In the image below, the man page for ARP indicates that ARP is obsolete (under the “notes” section) and that one should look up ip neigh instead. It would seem, by that notation, that one may want to type “man ip neigh” to access information about the replacement tool/protocol.
However,, typing “man ip neigh” does not look up the man page for “ip neigh”. Instead, it’ll look up two man pages… one for “ip” and the other for “neigh.”
While it’s true that you’ll get a man page if you type “man ip neigh,” unless you are paying close attention, you may miss that it’s not actually what you were looking for.
You could add a dash (even though that isn’t what shows in the man page when referencing the replacement tool)… So, if you add a dash and type “man ip-neigh” that also works fine but it isn’t correct either.
You might try typing “man ip-neighbour” (note the British spelling). When you type that particular phrase, you’ll see the correct man page for replacing the ARP man page (or replacing the ARP protocol). The bottom line is this: If you can’t find what you need, try using different combinations until you get the desired man page.
As an example, try looking up the man page for the nslookup tool. You do this by typing “man nslookup”. When you do that, you’ll see a man page that looks similar to the image/screenshot below. You’ll learn all you’d want to know about the nslookup tool.
After the man page pops up on your screen you can scroll down, read, apply, test, and even close out the man page (by typing the letter “q” and letting the man page automatically close).
If you request a man page that doesn’t exist, Linux will provide you with the feedback that there’s no entry for that man page and to try another one.
IPv4 and IPv6
Both IPv4 and IPv6 are technically the same, but they don’t appear the same to us humans. They’re a means of identifying machines or devices on a local area network (LAN). They’re private in the way that they identify the devices in the LAN.
IPv4 uses numbers separated by dots/periods. Most of us are familiar with the type of IP addresses we see for computers connected to our private networks using the IPv4 format.
Computers on a network also have an IPv6 address, but it looks different. IPv6 is composed of alphanumeric characters separated by colons ( : ).
So what are the differences between IPv4 and IPv6? Think of it like a network name. One is like the first name and the other is the last name. Both names point to the same person (or in this case, a computer). Just as we generally have a different first name compared to our last name, the IPv4 “name” will be different from the IPv6 “name” even though they both point to the same machine.
Carla Schroeder has written an easy-to read and useful article about IPv4 and IPv6.
Root Access on a Linux Server (and su and sudo)
For many of the tasks that need to be completed, root access (a.k.a. Administrator or superuser) is required. That’s because many of these utilities and apps are sensitive enough that they’re restricted for security reasons.
An alternative solution to logging in as root or triggering superuser access (su) is to prepend a command with “sudo” telling the Linux machine that that particular command needs to be run as superuser/root, but that subsequent commands do not (unless also prepended with the “sudo” directive).
In cases where “sudo” is used and prepended to the command, Linux will request the su password in order to authenticate the superuser identity and permissions.
Networking Protocols
there are many different protocols to consider when discussing Linux. The two protocols that are primary to this article are TCP and IP.
Transmission Control Protocol (TCP)
Transmission Control Protocol, more often referred to as TCP, is a protocol used for the transmission of packets, just as the name describes.
See below for an explanation of various tools, including the Linux tool called Traffic Control (tc).
TCP directs the Linux operating system on how packets should move from one place to another. It also controls network traffic and directs the transmission of packets of information (like folders of data moving from one place to another).
This is why the protocol is called Transmission Control Protocol (TCP).
Internet Protocol (IP)
Internet Protocol is commonly referred to by its acronym, IP.
In the case of the IP you have a wider area (the Internet) to transmit packets. It’s like having a wider, longer, and more travelled super highway… called the internet. While TCP controls the movement of packets across a network, IP controls the movement of packets across the internet.
ICMP Protocol
ICMP stands for Internet Control Messaging Protocol. While it’s a protocol that’s available in most Linux distributions, it may not be available on all Linux distributions. This was evidenced by the lack of a Man page within a current Centos installation.
At first glance, it may not seem like this particular protocol is that essential but in reality it is. ICMP is responsible for providing error messages if/when a packet doesn’t properly reach its destination. ICMP is essential for receiving status updates on the delivery (or receipt) of the packets of information being transmitted.
User Diagram Protocol (UDP)
User Diagram Protocol (UDP), like Transmission Control Protocol (TCP), is a protocol for the transmission of packets of information from one point to another. In the case of TCP, as a part of the process/transmission, there’s a verification of successful delivery of the packet(s), making it more reliable than UDP.
In the case of UDP, there’s no verification process so you won’t know whether the packets were transmitted or received successfully and without error. As such, it’s an easy enough protocol to utilize but it’s not verifiable or able to be authenticated.
Linux Configuration
There’s several configuration files available in the Linux operating system.
For example, if you’re running an Apache server on your Linux machine, the Apache configuration files are important. Those files let the Apache web server know what’s going on with the domain and more specifically, the site that’s hosted on that server.
Sometimes the configuration file is labeled as httpd.conf. Sometimes it’s labeled as apache.conf. Or it could be a completely different label/name. You may find the configuration files in one location on one server, and other times they’re in a completely different location on another server.
Fortunately, there are helpful commands that may assist in locating specific configuration files. For example, you can type the following to locate the “httpd.conf” configuration file, if it exists:
find / -name “httpd.conf”
The first word, “find”, let’s Linux know what command/utility you’re using, which in this case is the “find” utility. The second component of the command line is the “/” which lets the find utility know that it should be searching the path starting from the root level of the server.
If you were looking in a more specific location, you may have something like “/etc” to let Linux know to start in the etc directory and follow that path. By providing a specific path/location, you can potentially speed up the process, because Linux doesn’t have to search in places that are redundant.
The “-name” option lets Linux know what you’re looking for in the name of the file or directory. It’s helpful to include the name in quotation marks, and you can also use an asterisk ( * ) as a wild card when searching.
Some examples of configuration files and directories in the “/etc” directory/path include:
- pam.d – a directory that contains utilities related to authentication modules. “Su” and “sudo” are found there, as an example.
- sysconfig – a directory that includes functions of the computer, like power management, mouse, and more.
- resolv.conf – a file that aids in the functionality of the domain name server, if the Linux machine is being used in that capacity.
- services – this file contains the available connections (i.e. open ports) available on the Linux machine.
If you’re wondering if any files, paths, or utilities are obsolete or deprecated, use the man pages to check. This is a helpful way to keep tabs on what is current and what has changed.
Understanding the Linux File System
In many Linux distributions, configuration files are found in the network-scripts directory under the “etc/sysconfig” path. If they’re not located there, it’s likely that there’s a similar location/path. The files that are present in this particular case are shown in the screenshot below.
As you’ll see in the screenshot below, there are two configuration files. Each of them are labeled according to their respective interfaces (i.e. ifcfg-eth0).
The configuration files are preceded by “ifcfg” which replaces the ifconfig command (as well as becoming a part of the interface file name). That said, it has now been somewhat replaced as well since the ifcfg is not compatible with IPv6.
The two interfaces references (ifcfg-eth0 and ifcfg-lo) refer to specific types of interfaces. Linux developers were helpful in this area, providing definition and direction in the form of file names. In the case of the interface ending in “eth0”, it’s an interface that’s connected via “ethernet” or has ethernet capability.
The use of the letters “eth” point you in the right direction. The number that follows “eth” provides the number of the device. So, the next ethernet device may be something like “ifcfg-eth1” and so forth.
The file name that ends in “lo” refers to a “loopback” interface. It’s also referenced as the “localhost.” This is a network connection that isn’t technically a real network connection. It simply allows processes to communicate on the device without communicating over the network. Think “virtual” when thinking about this particular interface.
All Linux distributions are capable of having a loopback (or localhost) and are usually set up for one by default. They use an interface that ends in “-lo.” The IP address for the localhost is usually 127.0.0.1. In many cases, the loopback virtual interface can be used to test connections and rule out other potential network issues.
The Files
There are different ways to edit configuration files (as well as view them). One method is to use the “vi editor” that’s accessed via the command “vi” followed by the filename. In this case, when one types “vi ifcfg-eth0” (without the quotation marks) they are able to view the network information for that particular interface (eth0).
However, it would be more advisable to do it the traditional way and follow the network configuration instructions found in the man page for ifcfg.
This may also be easier for the non-technical person. Using the vi editor does require a bit of attention to detail so if you’re detail-oriented (or you’re already a programmer or system administrator) the vi editor may be an optimal solution when working with Linux configuration files.
In accessing the man pages, we’re able to review information about the ifcfg script that replaced the ifconfig script (as shown in the above screenshot of the man page). Also, when looking at the list of interfaces in the Linux distribution, we notice the ifup and ifdown commands. Those, too, can be reviewed in their man page(s).
A screenshot of the man page is shown in the image below. As you will see in the man page, there’s additional Linux configuration files (and the paths to get to those files) that can be consulted (and modified) in the set up and configuring of the TCP/IP files on Linux.
If you use a command-line text editor like the vi editor to view the configuration file, you will notice some options that are defined. For example, in looking at the network interface, you may see words in all caps, followed by an equals sign (=), and then another word.
For example, there may be a directive that’s “ONBOOT” and it may say “ONBOOT=yes” as an example of a configuration option. There’s several other configuration points and options as well. For example, another one is NETMASK.
If you see the configuration directive, “NETWORKING,” it should be followed by a “yes.” If it’s followed by “no” it may represent a problem because that would indicate that the network interface is not activated for networking.
Here is a step-by-step process to correcting the situation just described:
- Make a copy of the configuration file, to be safe. There are a few ways to do this. One of the easiest is with the command window.
Type: cp ifcfg-eth0 ifcfg-eth0_20200101
Then on the next line, type: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101
This moves the file copy you just made to a directory you’re using for backups.
- Now that you’ve made a backup of the configuration file,, it’s time to make changes to that configuration file. If you’re using the vi editor, you would type the following:
vi ifcfg-eth0
After doing so, the file will open in the terminal/command application (similar to the way a man page opens when you trigger it).
Once the configuration file is open, you would look for the line that includes “NETWORKING=no” and delete that line or change it to “NETWORKING=yes”. This can be done with the “cw” directive in the vi editor. By typing a forward slash, you’re telling the vi editor that you’re searching for something. In this case, you let the editor know that you are searching for “NETWORKING” and when it’s found (directing the mouse to that location) you can use the right arrow key to move to the word “no”.
When you get to the word “no”, stop on the “n” and type “cw” allowing you to change the “no” to “yes.” The “cw” stands for change word and Linux allows you to change the entire word from one word (“no”) to another (“yes”). If you only wanted to change one letter, you could use an “r” to replace one letter or character.
The screenshots show this process below.
- After saving the configuration file (i.e. typing esc to get out of the INSERT mode and then a double Z to save the file), it’s time to restart the service or the computer. This can be done in several different ways. One method to reboot the computer is typing the following command line:
shutdown -r now
The shutdown command tells the Linux machine to shutdown. The -r option tells the command that it isn’t just a shutdown, but a reboot and to do it now.
Tip: If you want to know when the computer or server has completed the reboot, type “ping” and then the public IP address of the computer/server (or a domain name of a site hosted on the Linux server).
By using the ping command, you will see that the server is not “pingable” (which happens during the reboot) and then when the server successfully restarts, the ping will respond with a positive response, indicating a successful reboot.
The following are some images that help to illustrate the steps in the above list.
Step 1:
Step 2:
Tip: Keep in mind that nothing in the server world is singular. For example, you may change the configuration for a particular interface (in this case eth0) but that may be just one interface on a network and may be affected by (or affect) another server.
So, in the example above, by restarting the server, it will trigger network devices to also restart. This is not the singular option for this interface but this interface would be affected by a command to restart.
/etc/hosts File(s)
The /etc/hosts file may or may not exist. If it does exist, it may or may not be used in the configuration. For example, you may have a different system that handles host configurations, rather than managing the file directly. Also, the hosts file itself varies. For example, IPv4 and IPv6 handle the configuration differently, as you can see in the image below.
Configuration Files; Locations/Paths; Terms; and More
Some additional helpful filenames and file locations are:
- /etc/sysconfig/network-scripts/ (configuration file path)
- /etc/sysconfig/network-scripts/ifcfg-eth0 (configuration file)
- /etc/hosts (configuration file)
- /etc/resolv.conf (configuration file with nameserver information)
In many cases, system or server software creates the configuration files automatically. Also, if DHCP is used, there are other aspects of the networking configuration that are calculated on-the-fly, since static IP addresses are not used in that case.
The following command-line (CL) commands were (or are) used in most Linux distributions. Where they are obsolete or deprecated, the replacement command is listed.
- route (obsolete / deprecated): Was used to show and edit routes. Replaced by ip route.
- hostname: Used to display or amanipulate and edit the hostname of the machine.
- netstat: View network connections, routing tables, interface statistics, multicast memberships, etc.
- arp: (obsolete / deprecated) Used to be used to show IPv4 information; specifically the network neighbor cache. IPv6 has become the network address, replacing the IPv4 collection of four numbers separated by periods. In light of these changes, this obsolete command has been replaced by ip neigh.
- ip: Not only does IP stand for “internet protocol” and the ultimate WAN (wide area network”) but it’s also a utility that allows the system administrator or computer user the ability to view the TCP/IP parameters as well as setting them as needed.
- tc: This stands for “traffic control” and is a utility to help with managing the inbound and outbound traffic on the Linux machine.
Configuration Tools: GUI Vs. Command Line (CL)
To provide a point of reference, the following three images display a graphical user interface (GUI) mechanism to handle the configuration of networking, including TCP/IP.
The first image is the Apple Mac GUI (System Preferences > Networking) and the second two images are that of the Windows Operating System (though it varies from version to version). It’s accessed via the Microsoft Control Panel and Network Connections, as you can see in the screenshots.
Pros and Cons of GUI Versus Text Editor or Command Line (CL)
While many people prefer graphical user interfaces (GUI) because of their ease of use, visual presentation, and overall simplicity, it’s helpful to understand configuration files (in this case related to networking) so that you can troubleshoot and correct any issues.
You may want to grab the GUI first but it helps to be fully informed… just in case. Also, there’s some operating systems that do not necessarily have a GUI (or don’t have one yet) so again; it’s helpful to be prepared.
In the next section we’ll cover configuration files and how to access them, update them, as well as the management of the files and utilities.
Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons
There are many tools that are available for Linux distributions. Again, like other commands there are similarities (and differences) between how those tools are used in the different distributions. In some cases, tools are available but need to be installed first, and the installation process often varies.
The command line tool is often referenced as shell and in the early days, terminal. There are other terms for it but generally, it’s an application that allows the user to access operating systemsby typing commands in a window.
Let’s look at a couple of examples. The first one is from the Windows operating system and likely looks familiar to Windows users. The tool is openedby typing CMD (as shown in the screenshots below).
The second screenshot is that of an application called Terminal that comes pre-installed on most Apple computers.
NSLookup (nslookup)
In the case of nslookup, the ns stands for nameserver and the lookup portion of the command is a “look up” of information. So, what the name of this tool is telling us is that it’ll look up information generally available via a nameserver.
NSLookup is a handy tool. In this case, we are using it to look up information about eBay. In order to do so, we type “nslookup ebay.com” and we’re presented with information that’s similar to what’s shown in the image below.
The command is displayed at the top of the screenshot (after the blurred out private information). Then, the output from that request (the nslookup) is shown below that, with information such as Server (the public IP address), the specific IP address, etc.
Traffic Control (tc)
Another tool is the “Traffic Control” tool (also referred to as “tc”). It’s a tool that allows the scheduling and processing of data packets.
The command tells you how the packets move over a network. That how aspect includes the answers to questions like timing, speed, devices, and more. Here is a command line (CL) representation of the use of Traffic Control (tc):
While it might look like “gibberish” to some, each word in the command line represents something important. Here is the listing:
- tc: This is the tool, in this case “Traffic Control” (a.k.a. “tc”). This tells the command line application/software which Linux tool to use.
- qdisc: This abbreviation stands for queuing discipline and is another way of describing a simple scheduler.
- add: Since we are building a configuration (yes, technically a file), we are telling the tool that we are adding to the controls.
- dev eth0: The “dev” refers to the “device”, letting the tool know that we’re about to define the device. The “eth0,” in this case, is the reference to the device. You’ll notice that this is similar to what appears in a graphical user interface (GUI) for a device label.
- root: This tells the tool that we are modifying the outbound traffic from the root level, or egress.
- netem: This word represents the phrase, “network emulator”. While it may not be the hardware network, it’s emulating the same. This is similar to how the Parallels software emulates the Windows software for Apple computers. Granted, it’s a completely different piece of software but is emulation software in the same way that netem is emulating a network. In this case, netem represents a WAN (wide-area-network) as opposed to a LAN (local-area-network).
- delay: This word tells the tc tool that we’re modifying the “delay” component of the transaction.
- 400ms: We have already told the tool that we’re affecting the delay, but now we need to define how much we are affecting the delay. In this case, it’s by 400 milliseconds.
Network Manager
The purpose of the Network Manager is to simplify and automate your network configuration. For DHCP users, the Network Manager can obtain an IP address, supersede default routes and automatically swap out nameservers.
The nmtui tool for using your Network Manager is available in most, though not all, Linux distributions. Also, keep in mind that some tools are “available” and yet not available. In other words, there are some tools and daemons that need to be installed and do not necessarily come pre-installed on the Linux distribution in question.
Other Networking Topics
There are many aspects of networking and TCP/IP that are particularly fascinating, especially when dealing with a Linux distribution. Don’t forget that you have manual pages (a.k.a. man pages) available right within the Linux installation. So, while this may appear to be a sort of unrelated list of what you shouldn’t do, you can always use a man page to figure out what you should do.
Linux as the Router
These days, most people use hardware that’s dedicated to the task of routing (i.e. router) to manage the network route task.
Many times, that’s because routers are a part of the package deal with home or office internet packages/contracts. The customer is usually caught paying a rental/lease fee per month (or annually) or having to purchase the router.
However it’s handled, there’s little need for Linux to operate as a router even though it’s capable of functioning as one. The scenarios described above create an almost pseudo-deprecation situation for Linux, but that doesn’t mean Linux is out of the game entirely. It’s possible to set up a Linux server as the hardware (and subsequent software) router if you need to.
IP Route (Formerly “Route”)
The following image shows a screenshot of the man page for “Route” and the directives that are possible with that tool.
SNORT – An Intruder Detection System
Snort Software is an open source Intrusion Detection System (IDS) originally developed by Martin Roesch and since acquired by Cisco Systems. It operates on the basis of rules that utilize the TCP/IP layers of the network. Defining those rules identify intrusions to protect a network.
How to Set Up Linux > TCP/IP Settings for Linux
The following mini tutorials will help you with some common tasks that you may come across in the Linux world.
Keep in mind that times change quickly, so it’s helpful to use your man pages as well as searches in Google to verify the following steps and ensure that there aren’t any other tools that may do the job better. As of the writing of this article, that’s not the case.
Tutorial 01: Assigning a Static IP Address to a Linux Machine
The first question you should ask is whether or not the computer/server needs a static IP address (one that does not change) or a changeable IP address (like DHCP – Dynamic Host Configuration Protocol). If this is your personal computer (not a server), the chances are you may be using DHCP for your access to the internet.
What that means is that you don’t have to mess with assigning a static IP address to your computer. Your internet service provider (ISP) and any hardware provided/leased is automatically calculating an IP address on-the-fly to enable you to connect to the internet. In other words, if you don’t need a static IP address, a dynamically changing one is just fine for your non-server computer.
If you have a server and you need it to be accessible to others (i.e. outside your home; a WAN/internet; non-LAN) then you will need a static IP address so that either the domain that you are using is mapped to it via the hosting nameserver assigned to the domain, or accessible directly via the static IP address.
If no one needs to access your computer or server outside your home, then a changing IP address (dynamic; non-static) is just fine, because no one is using a static IP address.
Note: Some people have used a DHCP IP address for public access (yes, even as a server) but,
- It requires a very technically-minded person to do so, so it’s not as common.
- It’s much more difficult to maintain (because of its ever-changing nature) than a static IP address.
If you do need a static IP address, then go ahead and follow the steps here. If not, you can skip this section.
As you will see, the command (shown above) includes “sudo” at the beginning of the line. While it’s possible to use the “su” command (superuser) and log in as the superuser, the use of “sudo” only runs that one command as superuser.
The other method, logging in as superuser, allows all tasks to be completed as superuser, making it more convenient to do what needs to be done.
However, along with that comes a security risk, which is why it’s safer to simply start the command with sudo and allow the app to request a password (as needed) to complete the command as superuser for that task/command.
The choice is yours and should be based on whatever method is easier. The file represented by the screenshot below is accessed via the following command:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Prior to using that command, the network device number is verified ( eth0 ) to ensure that it’s correct. As you recall, the Linux configurations are managed within the file for the interface so it’s essential that the interface number is verified from that file prior to editing the configuration file.
Another aspect of the configuration file to take notice of is the use of the word “static.” Since we are adding a static IP address, it’s important to let the configuration file know that that’s the case.
The notes were added in the screenshot below for illustrative reasons, but should not be included in your configuration file. Also, in some Linux distributions, quotation marks are required. In this particular configuration file, no quotation marks were present in the auto-created configuration file so that trend was continued and no quotation marks were added.
The following screenshot shows how the file would actually appear, with the notes and extra spaces removed.
The next (and final) configuration file to be edited is accessed by typing:
sudo vi /etc/resolv.conf
Within that file, the nameservers can be added (or modified). Those nameservers should match the other configuration file that was just modified. In this case, at /etc/sysconfig/network-scripts/ifcfg-eth0 (the screenshot above).
The verbiage that will be used is “nameserver.” So, where the device configuration file shows DNS1=8.8.8.8, the resolv.conf file should show nameserver 8.8.8.8.
The counterpart of DNS2=4.4.4.4 would show as nameserver 4.4.4.4 in the resolv.conf file.
Loosely put, the steps above work on the Red Hat Linux distribution, but there’s no guarantee that it’ll work in the future, with the technology changes that occur. This is why configurations should be tested and verified.
Once the configurations have been completed, restart the network interface with the preferred method as described above. This will apply the changes. It’s also helpful if the static IP address is tested. You can do this by attempting to connect to that public static IP address from another device (preferably on a different network).
You could also call a friend or associate and have them attempt a connection to the static IP address from another geographic location (and different network).
Tutorial 02: Network IP Aliasing
It’s possible to assign more than one IP address to one network interface card (NIC). This is called Network IP Aliasing because only one IP would be an actual one, so the additional IP addresses are aliases to the same card. In order to assign the IP address, use your favorite method of assigning the IP address as described in Tutorial 01.
It isn’t that it has to be static, but in order to have multiple IP addresses assigned using Network IP Aliasing, one has to assign IP addresses using a static IP.
Tutorial 03: Change Host Name of the Linux Machine
Use the following steps to change the hostname of your Linux machine using your preferred editor:
1. Modify the hostname configuration file by typing the following in the command line app:
sudo vi /etc/hostname
Wherever you see the old host name in that configuration file, replace it with the new host name.
2. Modify the hosts configuration file by typing the following in the command line app:
sudo vi /etc/hosts
Wherever you see the old host name in that file, replace it with the newly chosen/designated host name in the same way that you did with the hostname configuration file in the above step one.
3. Restart the server or Linux computer. One method to do this (depending on your Linux distro) is to type the following in the command line app:
sudo shutdown –r now
This restart is needed in order for the changes to take effect.
Tutorial 04: Enable and Disable Your NIC
One of the more fascinating things that you can do via the command line in Linux is to enable or disable your Ethernet connection.
To do this, type the appropriate command from these two:
sudo ip link setup
sudo ip link setdown
With older versions of Linux, you could run ifconfigup or ifconfigdown, but it’s possible that those commands are deprecated or obsolete within newer Linux distributions. In that case, the newer ip command is preferable.
Tutorial 05: Enable Network Forwarding
Your Linux operating system is capable of connecting a variety of networks and can act as a router. All you need to do is uncomment the net.ipv4.ip_fporward=1 line which will enable you to forward the IP address.
The necessary configuration file is normally stored at /etc/sysctl.conf:
For examples on how to set it up take a look at “How to enable IP forwarding on Linux (IPv4 / IPv6).”
If you’re setting up a Linux server using DHCP (instead of a static IP address) you can opt for a form of network forwarding. This is not common, but referenced here because it’s doable and it represents a case where someone may be inclined to do so.
Tutorial 06: Remote Commands Via Shell
In the case where you need to access a Linux server and that server is not geographically located in the same place as you, you may need to use remote commands to access that remote Linux server.
For those who are programmers or system administrators, “remoting in” to a server is a normal occurrence.
One of the most popular ways to do this is to use the “ssh” command, letting the command line app know that you want to securely access the Linux server, even if you are doing so via an insecure connection.
In addition to the use of the “ssh” command, you need to provide information of where you’re connecting and how (among other options available).
You may use a domain name for the Linux server access or even a public static IP address. The name or IP address tells the ssh command what it’s accessing and where to find it.
Other options may include the username that will be used to login to the remote server. Without that option defined, it may be requested but it’s also an option to define it at the same time as the ssh command.
For example:
ssh username myserver.com
The password may also be configured into the command but it’s recommended, for security reasons, that you enter that at the time of the connection with the remote server.
Why? If the password is typed into the command, in plain text, it can be accessed by the next person using that same computer and they would have access to the password.
For additional security reasons you may want to access the Linux server via a specific port. By designating a port that may be used, you can block other ports and prevent hacker attempts or DOS (denial of service) attacks.
There are many different configuration points for ssh. Some of these are listed at shellhacks.com.
Tutorial 07: Network Monitoring Tools
One important component of managing a network is verifying that everything works and continues to work. You can do this through network monitoring. Tools that accommodate network monitoring vary but ultimately accomplish similar goals and objectives.
One such network-monitoring tool is Cacti. Cacti is an open-source network monitoring tool. Cacti monitors the network and provides graphical representations of what has been logged. This helps users (especially newbies) to identify where there may be issues.
The front end can accommodate plenty of users and is sometimes used by hosting services to display real-time bandwidth information and other data in the following graphs..
Data can be fed into Cacti via any external script or command. Cacti will bring the data together via a cron-job and fill your MySQL database before presenting it as a front end user graph.
To handle data gathering, you can feed cacti the paths to any external script/command along with any data that the user will need to “fill in”. Cacti will then gather this data in a cron-job and populate a MySQL database.
Cacti is a useful tool for network administrators who want to monitor network use and provide easy-to-understand visuals to consumers. Cacti can be downloaded for free at cacti.net. The website includes documentation to install and configure the network monitoring tool.
Alternatives to Cacti you could try include, Solarwinds NPM, PRTG and Nagios. Solarwinds will support SNMP as well as ICMP/Ping, WMI, Netflow, Sflow, Jflow and IPFIX, to name a few. The pre-built templates, graphs and alerts help you to start monitoring your network quickly.
PRTG provides up to one hundred Sensors for free. It has similar features to Solarwinds, plus flexible alerts and applications for Smartphones, tablets, ipads.
Nagios has all of the tools you will find in Cacti, but does require a little more configuration. There are plenty of plugins to choose from. It has a solid reputation as one of the oldest network management and monitoring tools. But, you will have to get your hands dirty in the maintenance of its configuration files.