เครื่องมือบรรทัดคำสั่ง LSOF มีประโยชน์อย่างมากสำหรับผู้ดูแลระบบและนักพัฒนาโดยอนุญาตให้:
- กำหนดกระบวนการที่ใช้ไฟล์หรือพอร์ตเฉพาะในปัจจุบัน โดยเฉพาะอย่างยิ่งในกรณีที่พอร์ตขัดแย้งกัน
- ตรวจจับไฟล์ที่ถูกลบแต่ยังคงเปิดอยู่โดยกระบวนการที่อาจนำไปสู่การใช้พื้นที่โดยไม่จำเป็น คำสั่ง LSOF ทำหน้าที่ระบุและจัดการกับอินสแตนซ์ดังกล่าว
- ช่วยในการแก้ไขปัญหาข้อผิดพลาด เช่น “พอร์ตถูกใช้งานแล้ว” ได้อย่างมีประสิทธิภาพ
- ติดตามกิจกรรมเครือข่ายและการเชื่อมต่อเครือข่ายแบบเปิดเพื่อวัตถุประสงค์ในการตรวจสอบ
- ตรวจสอบรูปแบบการเข้าถึงไฟล์ ซึ่งมีส่วนช่วยในการระบุการละเมิดความปลอดภัยที่อาจเกิดขึ้น
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้คำสั่ง LSOF เพื่อตรวจสอบพอร์ตแบบเรียลไทม์
ไวยากรณ์พื้นฐานของคำสั่ง LSOF
ไวยากรณ์ของคำสั่ง LSOF เป็นดังนี้:
$ lsof [ ตัวเลือก ] [ ชื่อ ]
ตัวเลือกคือแฟล็กที่ใช้กับคำสั่ง LSOF ชื่อแสดงถึงชื่อไฟล์, PID (ID กระบวนการ), ชื่อผู้ใช้ หรือไฟล์เครือข่าย (IPv4, IPv6) ขึ้นอยู่กับอ็อพชันที่มีให้ คำสั่ง LSOF จะแสดงรายการไฟล์ที่เปิดซึ่งสอดคล้องกับชื่อเหล่านี้
ตรวจสอบพอร์ตแบบเรียลไทม์โดยใช้คำสั่ง LSOF
LSOF ถูกรวมไว้เป็นค่าเริ่มต้นในระบบ Linux หลายระบบ คุณต้องดาวน์โหลดและติดตั้งหนึ่งในแพ็คเกจที่มีอยู่ด้วยตนเองหากไม่ได้ติดตั้ง หากต้องการตรวจสอบการติดตั้ง LSOF บนระบบของคุณ ให้ใช้คำสั่งต่อไปนี้เพื่อแสดงเวอร์ชันที่ติดตั้ง:
$ lsof -ใน
สิ่งสำคัญคือต้องทราบว่าในการใช้คำสั่ง LSOF ด้วยสิทธิ์ที่เหมาะสม ข้อมูลบางอย่างเกี่ยวกับกระบวนการและการเชื่อมต่อเครือข่ายอาจต้องใช้สิทธิ์ผู้ใช้ขั้นสูง และคุณอาจต้องใช้ 'sudo' เพื่อเรียกใช้คำสั่งด้วยสิทธิ์ผู้ดูแลระบบ
แสดงรายการไฟล์เครือข่าย
เมื่อคุณรันคำสั่ง LSOF ด้วยตัวเลือก “-i” คำสั่งจะแสดงข้อมูลเกี่ยวกับกระบวนการที่มีการเชื่อมต่อเครือข่าย เช่น ซ็อกเก็ตการฟังหรือการเชื่อมต่อที่สร้างขึ้น
$ ฉันคำสั่งก่อนหน้านี้แสดงข้อมูลเกี่ยวกับชื่อกระบวนการ (COMMAND), ID กระบวนการ (PID), ผู้ใช้ (USER), ตัวอธิบายไฟล์ (FD), ประเภทการเชื่อมต่อ (TYPE), ที่อยู่ภายในเครื่องและระยะไกล และสถานะการเชื่อมต่อ คุณควรเห็นผลลัพธ์ต่อไปนี้:
แสดงรายการการเชื่อมต่อ TCP
คุณสามารถกรองเอาต์พุตตามเกณฑ์เฉพาะ เช่น ประเภทของการเชื่อมต่อหรือพอร์ตเฉพาะ ตัวอย่างเช่น คุณสามารถใช้ 'lsof -i tcp' เพื่อแสดงรายการเฉพาะกระบวนการที่เกี่ยวข้องกับการเชื่อมต่อ TCP
$ lsof -ฉัน ทีพีพี: 1 - - 1,024คำสั่งก่อนหน้านี้กรองข้อมูลเกี่ยวกับกระบวนการที่มีการเชื่อมต่อ TCP ที่เปิดอยู่ภายในช่วงพอร์ตที่ระบุตั้งแต่ 1 ถึง 1024 สิ่งนี้มีประโยชน์ในการระบุว่ากระบวนการใดกำลังใช้พอร์ตที่รู้จักกันดีซึ่งเชื่อมโยงกับบริการทั่วไป
ตรวจสอบพอร์ตเฉพาะแบบเรียลไทม์
เมื่อใช้ LSOF คุณสามารถตรวจสอบพอร์ตเฉพาะแบบเรียลไทม์ ตัวอย่างเช่น คุณต้องการตรวจสอบกระบวนการที่เกี่ยวข้องกับ “HTTP” บนพอร์ต 80 ซึ่งจะอัปเดตทุกๆ 3 วินาที เมื่อต้องการทำเช่นนี้ ให้ตรวจสอบพอร์ต 80 แบบเรียลไทม์ด้วยคำสั่งต่อไปนี้:
$ lsof -ฉัน : : 80 -r3
ตรวจสอบพอร์ต SSHD 22 แบบเรียลไทม์
หากต้องการตรวจสอบการเชื่อมต่อ SSHD ทั้งหมดที่ทำงานบนพอร์ต 22 ให้รันคำสั่งต่อไปนี้:
$ ซูโดะ lsof -ฉัน : : 22 -r3คำสั่งนี้จะตรวจสอบและแสดงข้อมูลเรียลไทม์เกี่ยวกับการเชื่อมต่อเครือข่ายบนพอร์ต 22 อย่างต่อเนื่องทุกๆ 3 วินาที สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการติดตามการเปลี่ยนแปลง เช่น การเชื่อมต่อ SSH ใหม่หรือการตัดการเชื่อมต่อที่เกิดขึ้นแบบเรียลไทม์
ตรวจสอบช่วงพอร์ตแบบเรียลไทม์
ในการตรวจสอบข้อมูลเกี่ยวกับกระบวนการแบบเรียลไทม์ที่มีการเชื่อมต่อ TCP ที่เปิดอยู่ภายในช่วงพอร์ตที่ระบุตั้งแต่ 1 ถึง 1024 คุณสามารถใช้คำสั่งต่อไปนี้:
$ lsof -ฉัน ทีพีพี: 1 - - 1,024 -r3
ตรวจสอบพอร์ตทั้งหมดแบบเรียลไทม์
คุณสามารถตรวจสอบการเชื่อมต่อเครือข่ายทั้งหมดแบบเรียลไทม์โดยใช้คำสั่ง LSOF ตัวอย่างเช่น คุณต้องการตรวจสอบและแสดงข้อมูลเรียลไทม์เกี่ยวกับการเชื่อมต่อเครือข่ายอย่างต่อเนื่องทุกๆ 5 วินาที
$ lsof -ฉัน -r5ผลลัพธ์ต่อไปนี้มีรายละเอียดเกี่ยวกับกระบวนการและซ็อกเก็ตเครือข่ายที่เกี่ยวข้องแบบเรียลไทม์หลังจากทุกๆ 5 วินาที:
ในทำนองเดียวกัน คุณสามารถตรวจสอบเฉพาะการเชื่อมต่อที่ “สร้างขึ้น” ด้วยคำสั่ง LSOF:
$ lsof -ฉัน -และ -r10
บทสรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้วิธีตรวจสอบพอร์ตแบบเรียลไทม์โดยใช้คำสั่ง LSOF คำสั่งนี้ยังสามารถช่วยผู้ดูแลระบบและผู้ใช้ Linux อื่นๆ ในการตรวจสอบการเชื่อมต่อเครือข่าย รวมถึงพอร์ตที่ใช้งานอยู่หรือเปิดอยู่ทั้งหมด เราหวังว่าคู่มือนี้จะช่วยให้คุณเข้าใจวิธีใช้คำสั่ง LSOF ด้วยตัวเลือกต่างๆ และตรวจสอบพอร์ตและกระบวนการต่างๆ ในแบบเรียลไทม์