แม้แต่ผู้ที่ไม่ใช่ geek ก็เคยได้ยิน “ TCP/IP ” แต่ทุกคนรู้หรือไม่ว่ามันคืออะไร หรือจะกำหนดค่าบนเซิร์ฟเวอร์Linux โดยใช้บรรทัดคำสั่ง(using the command line)ได้อย่างไร
ช่วยกำหนดคำศัพท์พื้นฐานก่อน อย่างน้อยที่สุด จะช่วยให้คุณพัฒนากรอบการทำงานเพื่อสร้างความเข้าใจของคุณ TCP/IPก็ไม่มีข้อยกเว้น
หัวข้อเกี่ยวกับคำศัพท์นี้ไม่ใช่รายการที่ละเอียดถี่ถ้วน ข้อมูลนี้จะให้ข้อมูลพื้นฐานแก่คุณในการเริ่มต้นการเดินทางสู่การทำความเข้าใจเกี่ยวกับเครือข่าย และวิธีกำหนดค่าไฟล์ TCP/IPบนLinux
The *Nix World
คุณเคยสงสัยหรือไม่ว่า*nixหมายถึงอะไร? แล้วUnix และ Linux เกี่ยวข้องกัน(Unix and Linux are related) อย่างไร (นับประสารุ่นต่างๆ ของแต่ละเวอร์ชัน)
*nixเป็นวิธีการอ้างอิงLinuxและ/หรือUnix (หรือการแจกจ่ายใดๆ) โดยใช้ไวด์การ์ด (เครื่องหมายดอกจัน) เพื่อดำเนินการดังกล่าว
* Nixได้รับการพัฒนาในช่วงปลายทศวรรษ 1960 AT& T Bell LabsพัฒนาUnixในเวลาเดียวกัน จากการทำซ้ำและการพัฒนาที่หลากหลายลินุกซ์(Linux)ก็ถือกำเนิดขึ้นเช่นกัน
ผลลัพธ์ของนวัตกรรมคู่ขนานเหล่านี้ก็คือ เมื่อคุณเรียนรู้วิธีติดตั้งบนเซิร์ฟเวอร์หนึ่งผ่านบรรทัดคำสั่ง คุณจะได้เรียนรู้ทักษะที่น่าจะเข้ากันได้กับงานอื่นๆ มากมายบนเซิร์ฟเวอร์ UnixหรือLinux ที่หลากหลาย(Linux)
หน้าคน – ข้อมูลที่ปลายนิ้วของคุณ(Man Pages – Information at Your Fingertips)
เช่นเดียวกับGoogleลินุกซ์(Linux)มีชุดเครื่องมือการค้นหาและการวิจัยเป็นของตัวเอง ซึ่งช่วยให้ผู้ใช้สามารถค้นหาทรัพยากรที่ต้องการได้ แหล่งข้อมูลเหล่านี้เรียกว่า "หน้าคน" เมื่อคุณเข้าสู่ ระบบ เซิร์ฟเวอร์Linux (หรือระบบปฏิบัติการที่ใช้ (Linux)Linux ) คุณสามารถเปิดแอปพลิเคชันบรรทัดคำสั่งและพิมพ์สิ่งที่คุณต้องการค้นคว้า เช่น การพิมพ์ข้อความค้นหาในไฟล์เอกสารเชิงโต้ตอบ
หากคุณเลือกหัวข้อที่ต้องการค้นคว้า เช่น ยูทิลิตีลิ นุกซ์(Linux)เครื่องมือdaemon สคริปต์(daemon, script)คุณสามารถค้นหาได้โดยพิมพ์ "man" ตามด้วยคำ คุณจะได้เรียนรู้วิธีดำเนินการนี้ในบทความนี้
หน้าคนใช้งานง่าย เพียง(Just)เริ่มพิมพ์สองสามคำแล้วLinux OSจะเริ่มส่งข้อมูลกลับให้คุณ หากไม่มี man page สำหรับหัวข้อใดหัวข้อหนึ่งลินุกซ์(Linux)จะบอกคุณว่า
โดยส่วนใหญ่ man page นั้นถูกต้องตามสมควรสำหรับเวอร์ชันซอฟต์แวร์ที่ปรากฏ ตัวอย่างเช่น หากคุณลงชื่อเข้าใช้ เซิร์ฟเวอร์ Linuxที่มีอายุ 10 ปี man page จะแสดงข้อมูลที่สัมพันธ์กับเวอร์ชันนั้น (และอายุ)
หน้าคนใช้งานง่ายและแม่นยำ แต่มีข้อแม้อยู่สองสามข้อ มาอธิบายข้อแม้เหล่านั้นผ่านรูปภาพ
ในภาพด้านล่าง man page สำหรับARPระบุว่าARPนั้นล้าสมัย (ภายใต้ส่วน "หมายเหตุ") และควรค้นหาip neighแทน ดูเหมือนว่าโดยสัญกรณ์นั้นอาจต้องการพิมพ์ “ man ip neigh ” เพื่อเข้าถึงข้อมูลเกี่ยวกับเครื่องมือ/โปรโตคอลทดแทน
อย่างไรก็ตาม การพิมพ์ “ man ip neigh ” จะไม่ค้นหา man page สำหรับ “ip neigh” แต่จะค้นหาหน้าคนสองหน้าแทน… หน้าหนึ่งสำหรับ “ip” และอีกหน้าสำหรับ “ใกล้”
แม้ว่าคุณจะได้รับ man page หากคุณพิมพ์ "man ip neigh" เว้นแต่คุณจะให้ความสนใจเป็นพิเศษ คุณอาจพลาดว่านี่ไม่ใช่สิ่งที่คุณกำลังมองหาจริงๆ
คุณสามารถเพิ่มเส้นประ (แม้ว่าจะไม่ใช่สิ่งที่แสดงในหน้าคนเมื่ออ้างอิงเครื่องมือทดแทน)... ดังนั้น หากคุณเพิ่มเส้นประและพิมพ์ "man ip-neigh" ซึ่งก็ใช้ได้ดีเช่นกัน แต่ไม่ถูกต้อง ทั้ง.
คุณอาจลองพิมพ์ “ man ip-neighbour ” (สังเกตการสะกดแบบอังกฤษ) เมื่อคุณพิมพ์วลีนั้น คุณจะเห็นหน้าคนที่ถูกต้องสำหรับการแทนที่หน้าคู่มือARP (หรือแทนที่ โปรโตคอล ARP ) บรรทัดล่างคือ: หากคุณไม่พบสิ่งที่คุณต้องการ ลองใช้ชุดค่าผสมต่างๆ จนกว่าคุณจะได้หน้าคนที่ต้องการ
ตัวอย่างเช่น ลองค้นหา man page สำหรับเครื่องมือ nslookup คุณทำได้โดยพิมพ์ "man nslookup" เมื่อคุณทำเช่นนั้น คุณจะเห็นหน้าคนซึ่งคล้ายกับภาพ/ภาพหน้าจอด้านล่าง คุณจะได้เรียนรู้ทุกสิ่งที่คุณต้องการทราบเกี่ยวกับเครื่องมือ nslookup
หลังจากที่ man page ปรากฏขึ้นบนหน้าจอของคุณ คุณสามารถเลื่อนลง อ่าน ใช้ ทดสอบ และแม้กระทั่งปิด man page (โดยพิมพ์ตัวอักษร “q” และปล่อยให้ man page ปิดโดยอัตโนมัติ)
หากคุณขอ man page ที่ไม่มีอยู่Linuxจะให้ข้อเสนอแนะว่าไม่มีรายการสำหรับ man page นั้นและลองใช้อันอื่น
IPv4 และ IPv6(IPv4 and IPv6)
ทั้งIPv4และIPv6นั้นทางเทคนิคเหมือนกัน แต่สำหรับมนุษย์เรานั้นไม่เหมือนกัน เป็นวิธีการระบุเครื่องหรืออุปกรณ์บนเครือข่ายท้องถิ่น ( LAN ) มีความเป็นส่วนตัวในลักษณะที่ระบุอุปกรณ์ในLAN
IPv4ใช้ตัวเลขคั่นด้วยจุด/จุด พวกเราส่วนใหญ่คุ้นเคยกับประเภทของที่อยู่ IP ที่เราเห็นสำหรับคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่ายส่วนตัวของเราโดยใช้รูปแบบIPv4
คอมพิวเตอร์บนเครือข่ายก็มีที่ อยู่ IPv6เช่นกัน แต่ดูแตกต่างออกไป IPv6ประกอบด้วยอักขระที่เป็นตัวเลขและตัวอักษรคั่นด้วยเครื่องหมายทวิภาค ( : )
IPv4และIPv6แตกต่างกันอย่างไร? คิดว่า(Think)มันเหมือนชื่อเครือข่าย หนึ่งเหมือนชื่อและอีกอันเป็นนามสกุล ทั้งสองชื่อชี้ไปที่บุคคลเดียวกัน (หรือในกรณีนี้คือคอมพิวเตอร์) เช่นเดียวกับที่เรามีชื่อจริงต่างกันเมื่อเทียบกับนามสกุลของเรา ชื่อIPv4จะแตกต่างจาก ชื่อ IPv6แม้ว่าทั้งสองจะชี้ไปที่เครื่องเดียวกัน
Carla Schroederได้เขียนบทความที่อ่านง่ายและมีประโยชน์เกี่ยวกับ IPv4 และ(useful article about IPv4 and IPv6) IPv6
การเข้าถึงรูทบนเซิร์ฟเวอร์ Linux (และ su และ sudo)(Root Access on a Linux Server (and su and sudo))
สำหรับงานหลายอย่างที่ต้องทำให้เสร็จ จำเป็นต้องมีการเข้าถึงรูท (หรือที่เรียกว่าผู้ดูแลระบบหรือ superuser) นั่นเป็นเพราะยูทิลิตี้และแอพเหล่านี้จำนวนมากมีความละเอียดอ่อนพอที่จะถูกจำกัดด้วยเหตุผลด้านความปลอดภัย
ทางเลือกอื่นในการเข้าสู่ระบบในฐานะ root หรือเรียกการเข้าถึง superuser (su) คือการเติมคำสั่ง "sudo" ข้างหน้าคำสั่งกับ เครื่อง Linuxว่าคำสั่งนั้นจำเป็นต้องรันเป็น superuser/root แต่คำสั่งที่ตามมาจะไม่ทำ (เว้นแต่ว่าด้วย นำหน้าด้วยคำสั่ง "sudo")
ในกรณีที่ใช้ “sudo” และต่อท้ายคำสั่งLinuxจะขอรหัสผ่าน su เพื่อตรวจสอบตัวตน superuser และการอนุญาต
โปรโตคอลเครือข่าย(Networking Protocols)
มีโปรโตคอลต่างๆ มากมายที่ควรพิจารณาเมื่อพูดถึงLinux โพรโทคอลสองโปรโตคอลที่เป็นหลักในบทความนี้คือTCPและ IP
โปรโตคอลควบคุมการส่ง (TCP)(Transmission Control Protocol (TCP))
Transmission Control Protocolซึ่งมักเรียกกันว่าTCPเป็นโปรโตคอลที่ใช้สำหรับส่งแพ็กเก็ต เช่นเดียวกับชื่อที่อธิบาย
ดูคำอธิบายด้านล่างของเครื่องมือต่างๆ รวมถึง เครื่องมือ Linuxที่เรียกว่าTraffic Control (tc)
TCPสั่งให้ระบบปฏิบัติการLinux ทราบว่าควรย้ายแพ็กเก็ตจากที่หนึ่งไปยังอีกที่หนึ่งอย่างไร (Linux)นอกจากนี้ยังควบคุมการรับส่งข้อมูลเครือข่ายและควบคุมการส่งแพ็กเก็ตข้อมูล (เช่น โฟลเดอร์ของข้อมูลที่(data)ย้ายจากที่หนึ่งไปยังอีกที่หนึ่ง)
นี่คือเหตุผลที่โปรโตคอลเรียกว่า Transmission Control Protocol (TCP)
อินเทอร์เน็ตโปรโตคอล (IP)(Internet Protocol (IP))
Internet Protocolมักเรียกโดยย่อว่า IP
ในกรณีของIPคุณมีพื้นที่กว้างกว่า ( อินเทอร์เน็ต(Internet) ) ในการส่งแพ็กเก็ต มันเหมือนกับมีซุปเปอร์ไฮเวย์ที่กว้างกว่า ยาวกว่า และเดินทางได้มากกว่า…ที่เรียกว่าอินเทอร์เน็ต ในขณะที่TCPควบคุมการเคลื่อนไหวของแพ็กเก็ตผ่านเครือข่าย IP จะควบคุมการเคลื่อนไหวของแพ็กเก็ตผ่านอินเทอร์เน็ต
โปรโตคอล ICMP(ICMP Protocol)
ICMPย่อมาจากInternet Control Messaging Protocol (Internet Control Messaging Protocol)แม้ว่าจะเป็นโปรโตคอลที่มีให้ในลีนุกซ์รุ่น(Linux) ต่างๆ ส่วนใหญ่ แต่ก็อาจไม่มีในลีนุกซ์(Linux) ทุก รุ่น สิ่งนี้พิสูจน์ได้จากการขาดMan page ภายในการติดตั้งCentos ปัจจุบัน(Centos)
เมื่อมองแวบแรก มันอาจจะไม่ได้ดูเหมือนว่าโปรโตคอลเฉพาะนี้จำเป็น แต่ในความเป็นจริงแล้วมันเป็นอย่างนั้น ICMPมีหน้าที่แสดงข้อความแสดงข้อผิดพลาดหาก/เมื่อแพ็กเก็ตไม่ถึงปลายทางอย่างถูกต้อง ICMPเป็นสิ่งจำเป็นสำหรับการรับการอัพเดตสถานะการจัดส่ง (หรือการรับ) ของแพ็กเก็ตข้อมูลที่กำลังส่ง
โปรโตคอลไดอะแกรมผู้ใช้ (UDP)(User Diagram Protocol (UDP))
User Diagram Protocol ( UDP ) เช่นTransmission Control Protocol ( TCP ) เป็นโปรโตคอลสำหรับการส่งแพ็กเก็ตข้อมูลจากจุดหนึ่งไปยังอีกจุดหนึ่ง ในกรณีของTCP ซึ่งเป็นส่วนหนึ่งของกระบวนการ/การส่ง มีการตรวจสอบการส่งแพ็กเก็ตที่สำเร็จ ทำให้มีความ น่าเชื่อถือมากกว่าUDP
ในกรณีของUDPไม่มีกระบวนการตรวจสอบ ดังนั้นคุณจะไม่ทราบว่าส่งหรือรับแพ็กเก็ตสำเร็จหรือไม่ และปราศจากข้อผิดพลาด ด้วยเหตุนี้ โปรโตคอลจึงเป็นโปรโตคอลที่ใช้งานง่ายแต่ไม่สามารถตรวจสอบยืนยันหรือรับรองความถูกต้องได้
การกำหนดค่าลินุกซ์(Linux Configuration)
มีไฟล์การกำหนดค่าหลายไฟล์ในระบบปฏิบัติการ Linux
ตัวอย่างเช่น หากคุณใช้งาน เซิร์ฟเวอร์ Apacheบนเครื่องLinux ไฟล์การกำหนดค่า (Linux)Apacheก็มีความสำคัญ ไฟล์เหล่านั้นทำให้ เว็บเซิร์ฟเวอร์ Apacheรู้ว่าเกิดอะไรขึ้นกับโดเมน และโดยเฉพาะอย่างยิ่ง ไซต์ที่โฮสต์บนเซิร์ฟเวอร์นั้น
บางครั้งไฟล์การกำหนดค่าจะมีป้ายกำกับว่า httpd.conf บางครั้งมีป้ายกำกับว่า apache.conf หรืออาจเป็นป้ายกำกับ/ชื่อที่ต่างไปจากเดิมอย่างสิ้นเชิง คุณอาจพบไฟล์การกำหนดค่าในตำแหน่งหนึ่งบนเซิร์ฟเวอร์หนึ่ง และในบางครั้งไฟล์เหล่านั้นจะอยู่ในตำแหน่งที่ต่างไปจากเดิมอย่างสิ้นเชิงบนเซิร์ฟเวอร์อื่น
โชคดีที่มีคำสั่งที่เป็นประโยชน์ที่อาจช่วยในการระบุตำแหน่งไฟล์การกำหนดค่าเฉพาะ ตัวอย่างเช่น คุณสามารถพิมพ์ข้อมูลต่อไปนี้เพื่อค้นหา ไฟล์การกำหนดค่า “ httpd.conf ” หากมี:
find / -name “httpd.conf”
คำแรก "find" จะทำให้Linuxรู้ว่าคุณใช้คำสั่ง/ยูทิลิตี้อะไร ซึ่งในกรณีนี้คือยูทิลิตี้ "find" องค์ประกอบที่สองของบรรทัดคำสั่งคือ "/" ซึ่งช่วยให้ยูทิลิตี find รู้ว่าควรค้นหาเส้นทางที่เริ่มต้นจากระดับรากของเซิร์ฟเวอร์
หากคุณกำลังค้นหาตำแหน่งที่เฉพาะเจาะจงมากขึ้น คุณอาจมีบางอย่างเช่น "/ etc" เพื่อให้Linuxรู้ว่าให้เริ่มต้นในไดเร็กทอรี etc และทำตามเส้นทางนั้น ด้วยการระบุเส้นทาง/ตำแหน่งที่เฉพาะเจาะจง คุณสามารถเพิ่มความเร็วของกระบวนการได้ เนื่องจากLinuxไม่จำเป็นต้องค้นหาในที่ที่ซ้ำซากจำเจ
ตัวเลือก “ -name ” ช่วยให้Linuxรู้ว่าคุณกำลังมองหาอะไรในชื่อไฟล์หรือไดเร็กทอรี การใส่ชื่อในเครื่องหมายคำพูดจะเป็นประโยชน์ และคุณยังสามารถใช้เครื่องหมายดอกจัน ( * ) เป็นไวด์การ์ดเมื่อทำการค้นหา
ตัวอย่างไฟล์การกำหนดค่าและไดเร็กทอรีบางส่วนในไดเร็กทอรี/พาธ “/etc” ได้แก่:
- pam.d –ไดเร็กทอรีที่มียูทิลิตี้ที่เกี่ยวข้องกับโมดูลการพิสูจน์ตัวตน ดูตัวอย่าง "Su" และ "sudo"
- sysconfig – ไดเร็กทอรีที่มีฟังก์ชันต่างๆ ของคอมพิวเตอร์ เช่น การจัดการพลังงาน เมาส์ และอื่นๆ
- resolv.conf – ไฟล์ที่ช่วยในการทำงานของเซิร์ฟเวอร์ชื่อโดเมน หาก เครื่อง Linuxถูกใช้ในความสามารถนั้น
- บริการ(services) – ไฟล์นี้มีการเชื่อมต่อที่พร้อมใช้งาน (เช่น พอร์ตเปิด) ที่มีอยู่ในเครื่องLinux
หากคุณสงสัยว่าไฟล์ พาธ หรือยูทิลิตี้ใดล้าสมัยหรือเลิกใช้แล้ว ให้ใช้หน้าคนเพื่อตรวจสอบ นี่เป็นวิธีที่เป็นประโยชน์ในการติดตามสิ่งที่เป็นปัจจุบันและสิ่งที่เปลี่ยนแปลงไป
ทำความเข้าใจกับระบบไฟล์ลินุกซ์(Understanding the Linux File System)
ในลีนุกซ์รุ่น(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)ทุก รุ่น สามารถมีลูปแบ็ค (หรือ localhost) และมักจะถูกตั้งค่าเป็นค่าดีฟอลต์ พวกเขาใช้อินเทอร์เฟซที่ลงท้ายด้วย "-lo" ที่อยู่ IP สำหรับ localhost มักจะเป็น 127.0.0.1 ในหลายกรณี สามารถใช้อินเทอร์เฟซเสมือนแบบวนรอบเพื่อทดสอบการเชื่อมต่อและขจัดปัญหาเครือข่ายที่อาจเป็นไปได้อื่นๆ
ไฟล์(The Files)
มีหลายวิธีในการแก้ไขไฟล์การกำหนดค่า (รวมทั้งดู) วิธีหนึ่งคือการใช้ "ตัวแก้ไข vi(vi editor) " ที่เข้าถึงได้โดยใช้คำสั่ง " vi " ตามด้วยชื่อไฟล์ ในกรณีนี้ เมื่อพิมพ์ “ vi ifcfg-eth0 ” (โดยไม่ใส่เครื่องหมายคำพูด) พวกเขาจะสามารถดูข้อมูลเครือข่ายสำหรับอินเทอร์เฟซนั้น ๆ (eth0) ได้
อย่างไรก็ตาม ขอแนะนำให้ใช้วิธีดั้งเดิมและทำตามคำแนะนำการกำหนดค่าเครือข่ายที่พบใน man page สำหรับ ifcfg
สิ่งนี้อาจง่ายกว่าสำหรับผู้ที่ไม่ใช่ด้านเทคนิค การใช้ตัวแก้ไข vi นั้นต้องการความใส่ใจในรายละเอียดเล็กน้อย ดังนั้นหากคุณเน้นรายละเอียด (หรือคุณเป็นโปรแกรมเมอร์หรือผู้ดูแลระบบอยู่แล้ว) ตัวแก้ไข vi อาจเป็นทางออกที่ดีที่สุดเมื่อทำงานกับไฟล์กำหนดค่าของLinux
ในการเข้าถึง man page เราสามารถตรวจสอบข้อมูลเกี่ยวกับสคริปต์ ifcfg ที่แทนที่สคริปต์ ifconfig (ดังที่แสดงในภาพหน้าจอด้านบนของ man page) นอกจากนี้ เมื่อดูรายการอินเทอร์เฟซในการ แจกจ่าย Linuxเราสังเกตเห็นคำสั่ง ifup และ ifdown สิ่งเหล่านี้สามารถตรวจสอบได้ใน man page ของพวกเขา
ภาพหน้าจอของ man page จะแสดงในภาพด้านล่าง ดังที่คุณจะเห็นในหน้าคู่มือ มี ไฟล์การกำหนดค่า Linux เพิ่มเติม (และเส้นทางไปยังไฟล์เหล่านั้น) ที่สามารถดู (และแก้ไข) ในการตั้งค่าและกำหนดค่าไฟล์TCP/IPบนLinux
หากคุณใช้โปรแกรมแก้ไขข้อความบรรทัดคำสั่ง เช่น โปรแกรมแก้ไข vi เพื่อดูไฟล์การกำหนดค่า คุณจะสังเกตเห็นตัวเลือกบางอย่างที่กำหนดไว้ ตัวอย่างเช่น ในการดูอินเทอร์เฟซเครือข่าย คุณอาจเห็นคำที่เป็นตัวพิมพ์ใหญ่ทั้งหมด ตามด้วยเครื่องหมายเท่ากับ (=) และอีกคำหนึ่ง
ตัวอย่างเช่น อาจมีคำสั่งว่า “ ONBOOT ” และอาจพูดว่า “ONBOOT=yes” เป็นตัวอย่างของตัวเลือกการกำหนดค่า มีจุดกำหนดค่าและตัวเลือกอื่นๆ อีกหลายประการเช่นกัน ตัวอย่างเช่น อีกอันหนึ่งคือ NETMASK
หากคุณเห็นคำสั่งการกำหนดค่า " เครือข่าย(NETWORKING) " ควรตามด้วย "ใช่" หากตามด้วย "ไม่" อาจเป็นปัญหาเพราะจะระบุว่าอินเทอร์เฟซเครือข่ายไม่ได้เปิดใช้งานสำหรับเครือข่าย
นี่คือขั้นตอนทีละขั้นตอนในการแก้ไขสถานการณ์ที่เพิ่งอธิบายไป:
- ทำสำเนาไฟล์การกำหนดค่าเพื่อความปลอดภัย มีสองสามวิธีในการทำเช่นนี้ หนึ่งในวิธีที่ง่ายที่สุดคือหน้าต่างคำสั่ง
พิมพ์: cp ifcfg-eth0 ifcfg-eth0_20200101
จากนั้นในบรรทัดถัดไป ให้พิมพ์: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101
การนี้จะย้ายสำเนาไฟล์ที่คุณเพิ่งสร้างไปยังไดเร็กทอรีที่คุณใช้สำหรับการสำรองข้อมูล
- เมื่อคุณสำรองข้อมูลไฟล์การกำหนดค่าแล้ว ก็ถึงเวลาเปลี่ยนแปลงไฟล์การกำหนดค่านั้น หากคุณกำลังใช้ตัวแก้ไข vi คุณจะต้องพิมพ์ข้อความต่อไปนี้:
vi ifcfg-eth0
หลังจากทำเช่นนั้น ไฟล์จะเปิดขึ้นในเทอร์มินัล/แอปพลิเคชันคำสั่ง (คล้ายกับวิธีเปิดหน้าคนเมื่อคุณทริกเกอร์)
เมื่อไฟล์การกำหนดค่าเปิดขึ้น คุณจะต้องมองหาบรรทัดที่มี “ NETWORKING=no ” และลบบรรทัดนั้นหรือเปลี่ยนเป็น “NETWORKING=yes” ซึ่งสามารถทำได้ด้วย “ cw” คำสั่งในตัวแก้ไข vi การพิมพ์เครื่องหมายทับหมายความว่าคุณกำลังบอกโปรแกรมแก้ไข vi ว่าคุณกำลังค้นหาบางอย่าง ในกรณีนี้ คุณแจ้งให้บรรณาธิการทราบว่าคุณกำลังค้นหา "เครือข่าย" และเมื่อพบ (นำเมาส์ไปยังตำแหน่งนั้น) คุณสามารถใช้ปุ่มลูกศรขวาเพื่อย้ายไปยังคำว่า "ไม่"
เมื่อคุณไปถึงคำว่า "ไม่" ให้หยุดที่ "n" แล้วพิมพ์ " cw " เพื่อให้คุณเปลี่ยนจาก "ไม่" เป็น "ใช่" “cw” ย่อมาจาก change word และLinuxให้คุณเปลี่ยนทั้งคำจากคำหนึ่ง (“no”) เป็นอีกคำหนึ่ง (“yes”) หากคุณต้องการเปลี่ยนตัวอักษรเพียงตัวเดียว คุณสามารถใช้ “r” เพื่อแทนที่ตัวอักษรหรืออักขระหนึ่งตัว
ภาพหน้าจอแสดงกระบวนการนี้ด้านล่าง
- หลังจากบันทึกไฟล์การกำหนดค่าแล้ว (เช่น พิมพ์ esc เพื่อออกจาก โหมด INSERTแล้วกด Z สองครั้งเพื่อบันทึกไฟล์) ก็ถึงเวลารีสตาร์ทบริการหรือคอมพิวเตอร์ สามารถทำได้หลายวิธี วิธีหนึ่งในการรีบูตคอมพิวเตอร์คือการพิมพ์บรรทัดคำสั่งต่อไปนี้:
shutdown -r now
คำสั่ง shutdown บอกให้เครื่องLinux ปิด (Linux)ตัวเลือก -r จะบอกคำสั่งว่าไม่ใช่แค่การปิดระบบ แต่เป็นการรีบูตและดำเนินการทันที
เคล็ดลับ:(Tip:)หากคุณต้องการทราบว่าคอมพิวเตอร์หรือเซิร์ฟเวอร์ทำการรีบูตเสร็จสิ้นเมื่อใด ให้พิมพ์ “ping” แล้วตามด้วยที่อยู่ IP สาธารณะของคอมพิวเตอร์/เซิร์ฟเวอร์ (หรือชื่อโดเมนของไซต์ที่โฮสต์บนเซิร์ฟเวอร์Linux )
เมื่อใช้คำสั่ง ping คุณจะเห็นว่าเซิร์ฟเวอร์ไม่สามารถ “ping ได้” (ซึ่งเกิดขึ้นระหว่างการรีบูต) จากนั้นเมื่อเซิร์ฟเวอร์รีสตาร์ทได้สำเร็จ 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) ต่อไปนี้ถูกใช้ (หรือ) ในลีนุกซ์ส่วนใหญ่ ในกรณีที่ล้าสมัยหรือเลิกใช้แล้ว คำสั่งการแทนที่จะแสดงรายการ
- เส้นทาง(route) ( obsolete / deprecated ): ใช้เพื่อแสดงและแก้ไขเส้นทาง แทนที่ด้วยเส้นทางip(ip route)
- ชื่อโฮสต์(hostname) : ใช้เพื่อแสดงหรือปรับเปลี่ยนและแก้ไขชื่อโฮสต์ของเครื่อง
- netstat : ดูการเชื่อมต่อเครือข่าย ตารางเส้นทาง สถิติอินเทอร์เฟซ สมาชิกมัลติคาสต์ ฯลฯ
- arp : ( obsolete / deprecated ) ใช้เพื่อแสดง ข้อมูล IPv4 ; โดยเฉพาะแคชเพื่อนบ้านของเครือข่าย IPv6ได้กลายเป็นที่อยู่เครือข่าย แทนที่ คอลเลกชัน IPv4ของตัวเลขสี่ตัวโดยคั่นด้วยจุด เนื่องจากการเปลี่ยนแปลงเหล่านี้ คำสั่งที่ล้าสมัย นี้จึงถูกแทนที่ด้วยip neigh
- ip : IP ไม่เพียงแต่หมายถึง “โปรโตคอลอินเทอร์เน็ต” และWAN ขั้นสูงสุด (เครือข่ายบริเวณกว้าง”) แต่ยังเป็นยูทิลิตี้ที่ช่วยให้ผู้ดูแลระบบหรือผู้ใช้คอมพิวเตอร์สามารถดู พารามิเตอร์ TCP/IPได้เช่นเดียวกับการตั้งค่าเหล่านี้ จำเป็น
- tc : ย่อมาจาก “traffic control” และเป็นยูทิลิตี้ที่ช่วยในการจัดการทราฟฟิกขาเข้าและขาออกบนเครื่อง Linux
เครื่องมือกำหนดค่า: GUI เทียบกับ บรรทัดคำสั่ง (CL)(Configuration Tools: GUI Vs. Command Line (CL))
เพื่อให้เป็นจุดอ้างอิง รูปภาพสามภาพต่อไปนี้แสดง กลไกอินเทอร์เฟซผู้ใช้แบบกราฟิก ( GUI ) เพื่อจัดการการกำหนดค่าเครือข่าย ซึ่งรวมถึง TCP TCP/IP
ภาพแรกคือApple Mac GUI ( System Preferences > Networking ) และสองภาพที่สองเป็นของระบบปฏิบัติการ Windows(Windows Operating System) (แม้ว่าจะแตกต่างกันไปในแต่ละเวอร์ชัน) สามารถเข้าถึงได้ผ่านแผงควบคุมของ Microsoft(Microsoft Control Panel)และ การ เชื่อมต่อเครือข่าย(Network Connections)ดังที่คุณเห็นในภาพหน้าจอ
ข้อดีและข้อเสียของ GUI กับโปรแกรมแก้ไขข้อความหรือบรรทัดคำสั่ง (CL)(Pros and Cons of GUI Versus Text Editor or Command Line (CL))
แม้ว่าหลายคนชอบอินเทอร์เฟซผู้ใช้แบบกราฟิก ( GUI ) เนื่องจากใช้งานง่าย การนำเสนอด้วยภาพ และความเรียบง่ายโดยรวม การทำความเข้าใจไฟล์การกำหนดค่า (ในกรณีนี้เกี่ยวข้องกับระบบเครือข่าย) จะเป็นประโยชน์อย่างยิ่ง เพื่อให้คุณสามารถแก้ไขปัญหาและแก้ไขปัญหาต่างๆ ได้
คุณอาจต้องการคว้าGUIก่อน แต่จะช่วยให้ได้รับข้อมูลอย่างครบถ้วน ... เผื่อไว้ นอกจากนี้ยังมีระบบปฏิบัติการบางระบบที่ไม่จำเป็นต้องมีGUI (หรือยังไม่มี) ดังนั้นอีกครั้ง เป็นประโยชน์ในการเตรียมพร้อม
ในส่วนถัดไป เราจะพูดถึงไฟล์การกำหนดค่าและวิธีการเข้าถึง อัปเดต ตลอดจนการจัดการไฟล์และยูทิลิตี้
เครื่องมือ Linux Command-Line (CL) ยูทิลิตี้ สคริปต์ และ Daemons(Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons)
มีเครื่องมือมากมายที่พร้อมใช้งานสำหรับลีนุกซ์(Linux)ดิสทริบิวชัน อีกครั้ง(Again)เช่นเดียวกับคำสั่งอื่นๆ มีความคล้ายคลึง (และความแตกต่าง) ระหว่างวิธีการใช้เครื่องมือเหล่านั้นในการแจกแจงแบบต่างๆ ในบางกรณี มีเครื่องมือให้ใช้งานแต่จำเป็นต้องติดตั้งก่อน และขั้นตอนการติดตั้งมักจะแตกต่างกันไป
เครื่องมือบรรทัดคำสั่งมักถูกอ้างอิงเป็นเชลล์(shell)และในช่วงแรกๆเทอร์มินั(terminal)ล มีข้อกำหนดอื่น ๆ สำหรับมัน แต่โดยทั่วไปแล้วมันเป็นแอพพลิเคชั่นที่อนุญาตให้ผู้ใช้เข้าถึงระบบปฏิบัติการโดยพิมพ์คำสั่งในหน้าต่าง
ลองดูตัวอย่างสองสามตัวอย่าง อันแรกมาจาก ระบบปฏิบัติการ Windows และมีแนวโน้มว่า ผู้ใช้Windowsจะคุ้นเคย เครื่องมือนี้เปิดขึ้นโดยพิมพ์CMD (ดังแสดงในภาพหน้าจอด้านล่าง)
ภาพหน้าจอที่สองเป็นของแอปพลิเคชันชื่อTerminalที่ติดตั้งมาล่วงหน้าในคอมพิวเตอร์Apple ส่วนใหญ่(Apple)
NSLookup (เอ็นเอสลุคอัพ)(NSLookup (nslookup))
ในกรณีของnslookup ns (nslookup)ย่อ(ns)มาจากnameserverและส่วนการค้นหา(lookup)ของคำสั่งคือ "การค้นหา" ของข้อมูล ดังนั้น สิ่งที่ชื่อเครื่องมือนี้บอกเราก็คือ มันจะค้นหาข้อมูลที่มีอยู่ทั่วไปผ่านเนมเซิร์ฟเวอร์
NSLookupเป็นเครื่องมือที่มีประโยชน์ ในกรณีนี้ เราใช้เพื่อค้นหาข้อมูลเกี่ยวกับ eBay ในการดำเนินการดังกล่าว เราพิมพ์ "nslookup ebay.com" และเราจะแสดงข้อมูลที่คล้ายกับที่แสดงในภาพด้านล่าง
คำสั่งจะปรากฏที่ด้านบนของภาพหน้าจอ (หลังจากเบลอข้อมูลส่วนตัว) จากนั้น ผลลัพธ์จากคำขอนั้น ( nslookup ) จะแสดงอยู่ด้านล่าง โดยมีข้อมูล เช่นเซิร์ฟเวอร์(Server) (ที่อยู่ IP สาธารณะ) ที่อยู่ IP(IP address) เฉพาะ เป็นต้น
การควบคุมการจราจร (tc)(Traffic Control (tc))
เครื่องมืออื่นคือเครื่องมือ "การควบคุมการจราจร" (เรียกอีกอย่างว่า "tc") เป็นเครื่องมือที่ช่วยให้สามารถตั้งเวลาและประมวลผลแพ็กเก็ตข้อมูลได้
คำสั่งจะบอกคุณว่า(how)แพ็กเก็ตเคลื่อนที่ผ่านเครือข่ายอย่างไร แง่มุม นั้น รวม ถึง(how)คำตอบสำหรับคำถาม เช่น เวลา ความเร็ว อุปกรณ์ และอื่นๆ นี่คือการแสดงบรรทัดคำสั่ง (CL) ของการใช้Traffic Control (tc):
แม้ว่าบางคำอาจดูเหมือน "ไร้สาระ" แต่แต่ละคำในบรรทัดคำสั่งแสดงถึงสิ่งที่สำคัญ นี่คือรายการ:
- tc : นี่คือเครื่องมือ ในกรณีนี้คือ “การควบคุมการจราจร” (aka “tc”) สิ่งนี้จะบอกแอปพลิเคชัน/ซอฟต์แวร์บรรทัดคำสั่งว่าใช้เครื่องมือLinux ใด(Linux)
- qdisc : ตัวย่อนี้ย่อมาจาก ระเบียบการ เข้าคิว(queuing discipline)และเป็นอีกวิธีหนึ่งในการอธิบายตัวกำหนดตารางเวลาอย่างง่าย
- เพิ่ม(add) : เนื่องจากเรากำลังสร้างการกำหนดค่า (ใช่ ในทางเทคนิคคือไฟล์) เรากำลังบอกเครื่องมือว่าเรากำลังเพิ่ม(adding)การควบคุม
- dev eth0 : "dev" หมายถึง "อุปกรณ์" ทำให้เครื่องมือรู้ว่าเรากำลังจะกำหนดอุปกรณ์ “eth0” ในกรณีนี้คือการอ้างอิงถึงอุปกรณ์ คุณจะสังเกตเห็นว่าสิ่งนี้คล้ายกับสิ่งที่ปรากฏในอินเทอร์เฟซผู้ใช้แบบกราฟิก ( GUI ) สำหรับป้ายกำกับอุปกรณ์
- root : สิ่งนี้บอกเครื่องมือว่าเรากำลังแก้ไขการรับส่งข้อมูลขาออกจากระดับรากหรือขาออก
- netem : คำนี้หมายถึงวลี "ตัวจำลองเครือข่าย" แม้ว่าอาจไม่ใช่เครือข่ายฮาร์ดแวร์ แต่ก็จำลองแบบเดียวกัน ซึ่งคล้ายกับวิธีที่ ซอฟต์แวร์ Parallelsจำลอง ซอฟต์แวร์ Windowsสำหรับคอมพิวเตอร์Apple จริงอยู่ที่มันเป็นซอฟต์แวร์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง แต่เป็นซอฟต์แวร์จำลองในลักษณะเดียวกับที่ netem กำลังจำลองเครือข่าย ในกรณีนี้ netem แสดงถึงWAN (เครือข่ายบริเวณกว้าง) แทนที่จะเป็นLAN (เครือข่ายเฉพาะที่)
- ล่าช้า(delay) : คำนี้บอกเครื่องมือ tc ว่าเรากำลังแก้ไของค์ประกอบ "ล่าช้า" ของธุรกรรม
- 400ms : เราได้แจ้งเครื่องมือไปแล้วว่าเรากำลังส่งผลต่อการหน่วงเวลา แต่ตอนนี้เราต้องกำหนดว่าเราจะส่งผลต่อการหน่วงเวลามากน้อยเพียงใด ในกรณีนี้คือ 400 มิลลิวินาที
ผู้จัดการเครือข่าย(Network Manager)
จุดประสงค์ของNetwork Managerคือเพื่อลดความซับซ้อนและทำให้การกำหนดค่าเครือข่ายของคุณเป็นแบบอัตโนมัติ สำหรับผู้ใช้DHCP ตัวจัดการเครือข่าย(Network Manager)สามารถรับที่อยู่ IP แทนที่เส้นทางเริ่มต้นและสลับเนมเซิร์ฟเวอร์โดยอัตโนมัติ
เครื่องมือ nmtui สำหรับการใช้ Network Manager นั้นมีอยู่ใน (Manager)Linuxส่วนใหญ่ แต่ไม่ใช่ทั้งหมด นอกจากนี้ พึงระลึกไว้เสมอว่าเครื่องมือบางอย่าง "พร้อมใช้งาน" และยังไม่พร้อมใช้งาน กล่าวอีกนัยหนึ่ง มีเครื่องมือและภูตบางตัวที่ต้องติดตั้งและไม่จำเป็นต้องติดตั้งมาล่วงหน้าบนการแจกจ่ายLinux ที่เป็นปัญหา(Linux)
หัวข้อเครือข่ายอื่น ๆ(Other Networking Topics)
มีหลายแง่มุมของเครือข่ายและTCP/IPที่น่าสนใจเป็นพิเศษ โดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับการกระจายLinux อย่า(Don)ลืมว่าคุณมีหน้าคู่มือ (หรือที่รู้จักว่าหน้าคน) พร้อมใช้งานภายในการติดตั้งLinux ดังนั้น แม้ว่านี่อาจดูเหมือนเป็นรายการที่ไม่เกี่ยวข้องกันเกี่ยวกับสิ่งที่คุณไม่ควรทำ แต่คุณสามารถใช้ man page เพื่อค้นหาสิ่งที่คุณควรทำได้เสมอ
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
โปรดทราบว่าเวลาเปลี่ยนแปลงอย่างรวดเร็ว ดังนั้น การใช้ man page และการค้นหาในGoogleจะช่วยได้มาก เพื่อยืนยันขั้นตอนต่อไปนี้ และให้แน่ใจว่าไม่มีเครื่องมืออื่นใดที่อาจทำงานได้ดีกว่า ในขณะที่เขียนบทความนี้ไม่เป็นเช่นนั้น
บทช่วยสอน 01: การกำหนดที่อยู่ IP แบบคงที่ให้กับเครื่อง Linux(Tutorial 01: Assigning a Static IP Address to a Linux Machine)
คำถามแรกที่คุณควรถามคือว่าคอมพิวเตอร์/เซิร์ฟเวอร์ต้องการที่อยู่ IP แบบคงที่หรือไม่ (ที่ไม่เปลี่ยนแปลง) หรือที่อยู่ IP ที่เปลี่ยนแปลงได้ (เช่น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” จะเรียกใช้คำสั่งนั้นเพียงคำสั่งเดียวในฐานะผู้ใช้ระดับสูง
อีกวิธีหนึ่งคือการเข้าสู่ระบบในฐานะ superuser ทำให้งานทั้งหมดเสร็จสิ้นในฐานะ superuser ทำให้สะดวกยิ่งขึ้นในการทำสิ่งที่ต้องทำ
อย่างไรก็ตาม มาพร้อมกับความเสี่ยงด้านความปลอดภัย ดังนั้นจึงปลอดภัยกว่าที่จะเริ่มต้นคำสั่งด้วย sudo และอนุญาตให้แอปขอรหัสผ่าน (ตามความจำเป็น) เพื่อดำเนินการคำสั่งให้สมบูรณ์ในฐานะ superuser สำหรับงาน/คำสั่งนั้น
ทางเลือกเป็นของคุณและควรขึ้นอยู่กับวิธีการใดก็ตามที่ง่ายกว่า ไฟล์ที่แสดงโดยภาพหน้าจอด้านล่างสามารถเข้าถึงได้ผ่านคำสั่งต่อไปนี้:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
ก่อนที่จะใช้คำสั่งนั้น หมายเลขอุปกรณ์เครือข่ายจะได้รับการยืนยัน ( eth0 ) เพื่อให้แน่ใจว่าถูกต้อง ตามที่คุณจำได้ การ กำหนดค่า Linuxได้รับการจัดการภายในไฟล์สำหรับอินเทอร์เฟซ ดังนั้นจึงจำเป็นต้องตรวจสอบหมายเลขอินเทอร์เฟซจากไฟล์นั้นก่อนที่จะแก้ไขไฟล์การกำหนดค่า
อีกแง่มุมหนึ่งของไฟล์การกำหนดค่าที่ควรทราบคือการใช้คำว่า "คงที่" เนื่องจากเรากำลังเพิ่มที่อยู่ IP แบบคงที่ สิ่งสำคัญคือต้องแจ้งให้ไฟล์การกำหนดค่าทราบว่าเป็นกรณีนี้
บันทึกย่อถูกเพิ่มลงในภาพหน้าจอด้านล่างเพื่อเหตุผลในการอธิบาย แต่ไม่ควรรวมไว้ในไฟล์การกำหนดค่าของคุณ นอกจากนี้ ใน การแจกแจง 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แต่ไม่มีการรับประกันว่าจะทำงานในอนาคตด้วยการเปลี่ยนแปลงทางเทคโนโลยีที่เกิดขึ้น นี่คือเหตุผลที่ควรทดสอบและตรวจสอบการกำหนดค่า
เมื่อการกำหนดค่าเสร็จสิ้น ให้รีสตาร์ทอินเทอร์เฟซเครือข่ายด้วยวิธีที่ต้องการตามที่อธิบายไว้ข้างต้น สิ่งนี้จะใช้การเปลี่ยนแปลง นอกจากนี้ยังเป็นประโยชน์หากมีการทดสอบที่อยู่ IP แบบคงที่ คุณสามารถทำได้โดยพยายามเชื่อมต่อกับที่อยู่ IP สาธารณะแบบคงที่จากอุปกรณ์อื่น (ควรอยู่ในเครือข่ายอื่น)
คุณยังสามารถโทรหาเพื่อนหรือเพื่อนร่วมงานและให้พวกเขาพยายามเชื่อมต่อกับที่อยู่ IP แบบคงที่จากที่ตั้งทางภูมิศาสตร์อื่น (และเครือข่ายอื่น)
บทช่วยสอน 02: นามแฝง IP เครือข่าย(Tutorial 02: Network IP Aliasing)
เป็นไปได้ที่จะกำหนดที่อยู่ IP มากกว่าหนึ่งรายการให้กับการ์ดอินเทอร์เฟซเครือข่าย ( NIC ) สิ่งนี้เรียกว่าNetwork IP Aliasingเพราะมีเพียงหนึ่ง IP เท่านั้นที่จะเป็น IP จริง ดังนั้นที่อยู่ IP เพิ่มเติมจึงเป็นชื่อแทนของการ์ดเดียวกัน ในการกำหนดที่อยู่ IP ให้ใช้วิธีการที่คุณชื่นชอบในการกำหนดที่อยู่ IP ตามที่อธิบายไว้ในบทช่วยสอนที่ 01
ไม่ใช่ว่าต้องเป็นแบบคงที่ แต่เพื่อให้มีที่อยู่ IP หลายรายการที่กำหนดโดยใช้Network IP Aliasingจะต้องกำหนดที่อยู่ IP โดยใช้ IP แบบคงที่
บทช่วยสอน 03: เปลี่ยนชื่อโฮสต์ของเครื่อง Linux(Tutorial 03: Change Host Name of the Linux Machine)
ใช้ขั้นตอนต่อไปนี้เพื่อเปลี่ยนชื่อโฮสต์ของ เครื่อง Linuxโดยใช้โปรแกรมแก้ไขที่คุณต้องการ:
1. แก้ไขไฟล์การกำหนดค่าชื่อโฮสต์โดยพิมพ์คำสั่งต่อไปนี้ในแอปบรรทัดคำสั่ง:
sudo vi /etc/hostname
เมื่อใดก็ตามที่คุณเห็นชื่อโฮสต์เก่าในไฟล์การกำหนดค่านั้น ให้แทนที่ด้วยชื่อโฮสต์ใหม่
2. แก้ไขไฟล์การกำหนดค่าโฮสต์โดยพิมพ์คำสั่งต่อไปนี้ในแอปบรรทัดคำสั่ง:
sudo vi /etc/hosts
เมื่อใดก็ตามที่คุณเห็นชื่อโฮสต์เก่าในไฟล์นั้น ให้แทนที่ด้วยชื่อโฮสต์ที่เลือก/กำหนดใหม่ในลักษณะเดียวกับที่คุณทำกับ ไฟล์การกำหนดค่า ชื่อโฮสต์(hostname)ในขั้นตอนที่หนึ่งด้านบน
3. รีสตาร์ทเซิร์ฟเวอร์หรือคอมพิวเตอร์Linux วิธีหนึ่งในการทำเช่นนี้ (ขึ้นอยู่กับLinux distro ของคุณ) คือการพิมพ์สิ่งต่อไปนี้ในแอปบรรทัดคำสั่ง:
sudo shutdown –r now
จำเป็นต้องรีสตาร์ทเพื่อให้การเปลี่ยนแปลงมีผล
บทช่วยสอน 04: เปิดใช้งานและปิดใช้งาน NIC ของคุณ(Tutorial 04: Enable and Disable Your NIC)
สิ่งที่น่าสนใจอีกอย่างหนึ่งที่คุณสามารถทำได้ผ่านบรรทัดคำสั่งในLinuxคือการเปิดหรือปิดการเชื่อมต่ออีเทอร์เน็ต ของคุณ(Ethernet)
เมื่อต้องการทำสิ่งนี้ ให้พิมพ์คำสั่งที่เหมาะสมจากสองสิ่งนี้:
sudo ip link setup
sudo ip link setdown
สำหรับ Linux(Linux)เวอร์ชันเก่าคุณสามารถเรียกใช้ ifconfigup หรือ ifconfigdown ได้ แต่อาจเป็นไปได้ว่าคำสั่งเหล่านั้นจะเลิกใช้หรือล้าสมัยในลีนุกซ์(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
บทช่วยสอน 07: เครื่องมือตรวจสอบเครือข่าย(Tutorial 07: Network Monitoring Tools)
องค์ประกอบที่สำคัญอย่างหนึ่งของการจัดการเครือข่ายคือการตรวจสอบว่าทุกอย่างทำงานและทำงานต่อไปได้ คุณสามารถทำได้ผ่านการตรวจสอบเครือข่าย เครื่องมือที่รองรับการตรวจสอบเครือข่ายนั้นแตกต่างกันไป แต่ในที่สุดก็บรรลุเป้าหมายและวัตถุประสงค์ที่คล้ายคลึงกัน
เครื่องมือตรวจสอบเครือข่าย อย่างหนึ่งคือCacti Cacti เป็นเครื่องมือตรวจสอบเครือข่ายโอเพ่นซอร์ส Cactiตรวจสอบเครือข่ายและแสดงภาพกราฟิกของสิ่งที่บันทึกไว้ ซึ่งจะช่วยให้ผู้ใช้ (โดยเฉพาะมือใหม่) สามารถระบุตำแหน่งที่อาจมีปัญหาได้
ส่วนหน้าสามารถรองรับผู้ใช้จำนวนมากและบางครั้งใช้บริการโฮสต์เพื่อแสดงข้อมูลแบนด์วิดธ์แบบเรียลไทม์และข้อมูลอื่น ๆ ในกราฟต่อไปนี้
ข้อมูลสามารถป้อนเข้าสู่Cactiผ่านสคริปต์หรือคำสั่งภายนอก Cactiจะนำข้อมูลมารวมกันผ่าน cron-job และเติม ฐานข้อมูล MySQL ของคุณ ก่อนที่จะนำเสนอเป็นกราฟผู้ใช้ส่วนหน้า
ในการจัดการการรวบรวมข้อมูล คุณสามารถป้อนเส้นทาง cacti ไปยังสคริปต์/คำสั่งภายนอกพร้อมกับข้อมูลใดๆ ที่ผู้ใช้จะต้อง "กรอก" Cactiจะรวบรวมข้อมูลนี้ในงาน cron และเติมฐานข้อมูลMySQL
Cactiเป็นเครื่องมือที่มีประโยชน์สำหรับผู้ดูแลระบบเครือข่ายที่ต้องการตรวจสอบการใช้เครือข่ายและให้ภาพที่เข้าใจง่ายแก่ผู้บริโภค สามารถดาวน์โหลดCacti ได้ฟรี ที่cacti.net เว็บไซต์นี้มีเอกสารประกอบสำหรับการติดตั้งและกำหนดค่าเครื่องมือตรวจสอบเครือข่าย
ทางเลือกอื่นสำหรับCacti ที่คุณสามารถลอง ใช้ได้แก่Solarwinds NPM , PRTGและNagios SolarwindsจะรองรับSNMPเช่นเดียวกับICMP/Ping , WMI , Netflow , Sflow , JflowและIPFIXเป็นต้น เทมเพลต กราฟ และการแจ้งเตือนที่สร้างไว้ล่วงหน้าช่วยให้คุณเริ่มตรวจสอบเครือข่ายได้อย่างรวดเร็ว
PRTGมอบเซ็นเซอร์ฟรีมากถึงหนึ่งร้อยตัว มีคุณสมบัติคล้ายกับSolarwindsรวมถึงการแจ้งเตือนและแอปพลิเคชันที่ยืดหยุ่นสำหรับสมาร์ทโฟน(Smartphones)แท็บเล็ต ไอแพด
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 іt is or how to configure it on a Linux 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.