วิธีการตั้งค่าและกำหนดค่าไฟล์ TCP/IP บน Linux (การตั้งค่า TCP/IP สำหรับ Linux)

แม้แต่ผู้ที่ไม่ใช่ 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) " ควรตามด้วย "ใช่" หากตามด้วย "ไม่" อาจเป็นปัญหาเพราะจะระบุว่าอินเทอร์เฟซเครือข่ายไม่ได้เปิดใช้งานสำหรับเครือข่าย 

นี่คือขั้นตอนทีละขั้นตอนในการแก้ไขสถานการณ์ที่เพิ่งอธิบายไป:

  1. ทำสำเนาไฟล์การกำหนดค่าเพื่อความปลอดภัย มีสองสามวิธีในการทำเช่นนี้ หนึ่งในวิธีที่ง่ายที่สุดคือหน้าต่างคำสั่ง

    พิมพ์: cp ifcfg-eth0 ifcfg-eth0_20200101

    จากนั้นในบรรทัดถัดไป ให้พิมพ์: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101

    การนี้จะย้ายสำเนาไฟล์ที่คุณเพิ่งสร้างไปยังไดเร็กทอรีที่คุณใช้สำหรับการสำรองข้อมูล
  2. เมื่อคุณสำรองข้อมูลไฟล์การกำหนดค่าแล้ว ก็ถึงเวลาเปลี่ยนแปลงไฟล์การกำหนดค่านั้น หากคุณกำลังใช้ตัวแก้ไข vi คุณจะต้องพิมพ์ข้อความต่อไปนี้:

    vi ifcfg-eth0

    หลังจากทำเช่นนั้น ไฟล์จะเปิดขึ้นในเทอร์มินัล/แอปพลิเคชันคำสั่ง (คล้ายกับวิธีเปิดหน้าคนเมื่อคุณทริกเกอร์)

    เมื่อไฟล์การกำหนดค่าเปิดขึ้น คุณจะต้องมองหาบรรทัดที่มี “ NETWORKING=no ” และลบบรรทัดนั้นหรือเปลี่ยนเป็น “NETWORKING=yes” ซึ่งสามารถทำได้ด้วย “ cw” คำสั่งในตัวแก้ไข vi การพิมพ์เครื่องหมายทับหมายความว่าคุณกำลังบอกโปรแกรมแก้ไข vi ว่าคุณกำลังค้นหาบางอย่าง ในกรณีนี้ คุณแจ้งให้บรรณาธิการทราบว่าคุณกำลังค้นหา "เครือข่าย" และเมื่อพบ (นำเมาส์ไปยังตำแหน่งนั้น) คุณสามารถใช้ปุ่มลูกศรขวาเพื่อย้ายไปยังคำว่า "ไม่"

    เมื่อคุณไปถึงคำว่า "ไม่" ให้หยุดที่ "n" แล้วพิมพ์ " cw " เพื่อให้คุณเปลี่ยนจาก "ไม่" เป็น "ใช่" “cw” ย่อมาจาก change word และLinuxให้คุณเปลี่ยนทั้งคำจากคำหนึ่ง (“no”) เป็นอีกคำหนึ่ง (“yes”) หากคุณต้องการเปลี่ยนตัวอักษรเพียงตัวเดียว คุณสามารถใช้ “r” เพื่อแทนที่ตัวอักษรหรืออักขระหนึ่งตัว

    ภาพหน้าจอแสดงกระบวนการนี้ด้านล่าง
     
  3. หลังจากบันทึกไฟล์การกำหนดค่าแล้ว (เช่น พิมพ์ 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)สำหรับการเข้าถึงแบบสาธารณะ (ใช่ แม้จะเป็นเซิร์ฟเวอร์) แต่

  1. ต้องใช้ผู้ที่มีความรู้ด้านเทคนิคมากจึงจะทำเช่นนั้นได้ จึงไม่ธรรมดา
  2. การรักษานั้นยากกว่า (เนื่องจากลักษณะที่เปลี่ยนแปลงตลอดเวลา) มากกว่าที่อยู่ 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แต่ต้องการการกำหนดค่าเพิ่มเติมเล็กน้อย มีปลั๊กอินให้เลือกมากมาย มีชื่อเสียงที่มั่นคงในฐานะหนึ่งในเครื่องมือการจัดการและตรวจสอบเครือข่ายที่เก่าแก่ที่สุด แต่คุณจะต้องทำให้มือของคุณสกปรกในการบำรุงรักษาไฟล์การกำหนดค่า



About the author

ฉันเป็นผู้ตรวจทานมืออาชีพและเพิ่มประสิทธิภาพการทำงาน ฉันชอบใช้เวลาออนไลน์เล่นวิดีโอเกม สำรวจสิ่งใหม่ ๆ และช่วยเหลือผู้คนเกี่ยวกับความต้องการด้านเทคโนโลยีของพวกเขา ฉันมีประสบการณ์กับ Xbox มาบ้างแล้วและได้ช่วยเหลือลูกค้าในการรักษาระบบของพวกเขาให้ปลอดภัยมาตั้งแต่ปี 2552



Related posts