Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

Nethogs: ตรวจสอบการจราจรเครือข่ายแบบเรียลไทม์ตามกระบวนการบน Linux

มีเครื่องมือตรวจสอบเครือข่ายโอเพนซอร์สจำนวนมากสำหรับ Linux บนเว็บ เช่น คำสั่ง iftop สำหรับตรวจสอบแบนด์วิดท์, netstat หรือ ss สำหรับดูสถิติ interface, หรือ top สำหรับดูกระบวนการที่รันอยู่

แต่หากคุณกำลังมองหาเครื่องมือที่ให้สถิติแบนด์วิดท์เครือข่ายแบบเรียลไทม์ ต่อกระบวนการ (per process) แล้ว NetHogs คือยูทิลิตีเพียงตัวเดียวที่คุณควรค้นหา

Nethogs: ตรวจสอบการจราจรเครือข่ายแบบเรียลไทม์ตามกระบวนการบน Linux

NetHogs คืออะไร?

NetHogs เป็นโปรแกรมบรรทัดคำสั่งโอเพนซอร์ส (คล้ายคำสั่ง top ของ Linux) ใช้ตรวจสอบแบนด์วิดท์เครือข่ายแบบเรียลไทม์ที่ใช้โดยแต่ละกระบวนการหรือแอปพลิเคชันใน Linux

จากหน้าโปรเจกต์ NetHogs

NetHogs เป็นเครื่องมือ 'net top' ขนาดเล็ก แทนที่จะแบ่ง traffic ตามโปรโตคอลหรือ subnet เหมือนเครื่องมือส่วนใหญ่ มันจัดกลุ่มแบนด์วิดท์ตามกระบวนการ NetHogs ไม่ขึ้นอยู่กับโมดูลเคอร์เนลพิเศษ หากมีการจราจรเครือข่ายเพิ่มขึ้นอย่างกะทันหัน คุณสามารถเปิด NetHogs และทันทีเห็นว่า PID ไหนเป็นสาเหตุ ทำให้ระบุโปรแกรมที่ "ล่วงลับ" และใช้แบนด์วิดท์มากผิดปกติได้ง่าย

ในบทความนี้ คุณจะได้เรียนรู้วิธีติดตั้งและหาการใช้แบนด์วิดท์เครือข่ายต่อกระบวนการแบบเรียลไทม์ด้วยยูทิลิตี nethogs ภายใต้ระบบปฏิบัติการ Unix/Linux

วิธีติดตั้ง NetHogs ในระบบ Linux

โซลูชันตรวจสอบแบนด์วิดท์ NetHogs นี้มีอยู่ในหลายการกระจาย Linux ขึ้นอยู่กับ distro ที่ใช้ คุณสามารถติดตั้ง nethogs ได้จากวิธีต่อไปนี้:

ติดตั้ง NetHogs ใน RHEL, CentOS, Rocky Linux, และ AlmaLinux

ต้องเปิดใช้งาน repository EPEL บน Linux แบบ RedHat-based ก่อน แล้วใช้คำสั่ง yum ติดตั้งแพ็กเกจ nethogs:

# yum install epel-release
# yum install nethogs

บน Fedora Linux ใช้คำสั่ง dnf:

# dnf install nethogs

ติดตั้ง NetHogs ใน Ubuntu, Linux Mint, และ Debian

ใช้คำสั่ง apt ติดตั้งแพ็กเกจ nethogs:

$ sudo apt install nethogs

วิธีใช้ NetHogs ตรวจสอบแบนด์วิดท์ตามกระบวนการ

เพื่อรันยูทิลิตี nethogs ใช้คำสั่งภายใต้ระบบ Red-Hat-based:

# nethogs

บน Linux แบบ Debian-based ต้องมีสิทธิ์ root ให้รันด้วย sudo:

$ sudo nethogs

ตัวอย่างหน้าจอ NetHogs:

Nethogs: ตรวจสอบการจราจรเครือข่ายแบบเรียลไทม์ตามกระบวนการบน Linux

Nethogs: ตรวจสอบการจราจรเครือข่ายแบบเรียลไทม์ตามกระบวนการบน Linux

จากภาพข้างต้น บรรทัด send และ received แสดงปริมาณ traffic ที่ใช้ต่อกระบวนการ รวม sent และ received ทั้งหมดคำนวณที่ด้านล่าง คุณสามารถเรียงลำดับและเปลี่ยนลำดับได้ด้วยการควบคุมโต้ตอบด้านล่าง

ตัวเลือกบรรทัดคำสั่ง NetHogs

ตัวเลือกบรรทัดคำสั่ง nethogs ดังนี้ ใช้ '-d' เพื่อเพิ่มอัตราการรีเฟรช และ 'device name' เพื่อตรวจสอบแบนด์วิดท์ของอุปกรณ์เฉพาะ (ค่าเริ่มต้นคือ eth0)

เช่น ตั้ง 5 วินาที เป็นอัตรารีเฟรช:

# nethogs -d 5
$ sudo nethogs -d 5

ตรวจสอบแบนด์วิดท์เฉพาะอุปกรณ์ (eth0) เท่านั้น:

# nethogs eth0
$ sudo nethogs eth0

ตรวจสอบแบนด์วิดท์ของทั้ง eth0 และ eth1:

# nethogs eth0 eth1
$ sudo nethogs eth0 eth1

ตัวเลือกและการใช้งาน NetHogs

  • -d – หน่วงเวลาสำหรับอัตรารีเฟรช
  • -h – แสดงคำสั่งที่ใช้ได้
  • -p – sniff ในโหมด promiscuous (ไม่แนะนำ)
  • -t – tracemode
  • -V – แสดงข้อมูลรุ่น

การควบคุมแบบโต้ตอบของ NetHogs

คีย์บอร์ดชอร์ตคัทที่มีประโยชน์ของโปรแกรม nethogs:

  • -m – เปลี่ยนหน่วยแสดงแบนด์วิดท์ เช่น KB/sec -> KB -> B -> MB
  • -r – เรียงตามขนาด traffic ที่รับ
  • -s – เรียงตามขนาด traffic ที่ส่ง
  • -q – ออกจากโปรแกรมกลับสู่ shell prompt

สำหรับรายการตัวเลือกเต็มของยูทิลิตี nethogs โปรดดู man pages ด้วยคำสั่ง 'man nethogs' หรือ 'sudo man nethogs' จากเทอร์มินัล

ข้อมูลเพิ่มเติม: หน้าโปรเจกต์ NetHogs

พัฒนาทักษะ Linux ของคุณไปสู่อันดับต่อไป

สมาชิก Root ได้รับการเข้าถึงเต็มรูปแบบทุกหลักสูตร, การเตรียมสอบรับรอง, และไลบรารีเนื้อหา Linux แบบ hands-on ที่เพิ่มขึ้นทุกเดือน

สิ่งที่คุณจะได้รับ:

  • เข้าถึงบทความพรีเมียมทั้งหมดโดยไม่มีโฆษณา
  • เข้าถึงหลักสูตรทั้งหมด: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang และอื่นๆ
  • เข้าถึงการรับรอง Linux (RHCSA, RHCE, LFCS และ LFCA)
  • เข้าถึงหลักสูตรใหม่เมื่อเผยแพร่
  • รับจดหมายข่าวรายสัปดาห์
  • ความช่วยเหลือลำดับแรกในคอมเมนต์
  • ชุมชน Telegram แบบส่วนตัว
  • เชื่อมต่อกับชุมชน Linux

Nethogs: ตรวจสอบการจราจรเครือข่ายแบบเรียลไทม์ตามกระบวนการบน Linux

ผมคือ Ravi Saive ผู้ประกอบการที่ได้รับรางวัล และผู้ก่อตั้งธุรกิจออนไลน์หลายแห่งที่ประสบความสำเร็จ รวมถึง TecMint.com, GeeksMint.com, UbuntuMint.com, และห้องเรียนพรีเมียม Pro.Tecmint.com

แต่ละบทช่วยสอนที่ TecMint สร้างโดยทีมผู้ดูแลระบบ Linux ที่มีประสบการณ์ เพื่อให้ตรงตาม มาตรฐานคุณภาพสูงของเรา