Contents

วิธีตรวจสอบการใช้งานเครือข่ายสำหรับกระบวนการบน Linux

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

##เน็ตอ็อก

/th/images/nethogs-transmission.jpg

nethogs เป็นโปรแกรมที่ทำเพื่อการเชื่อมต่ออินเทอร์เน็ต ซึ่ง htop หรือ top ทำกับการใช้ CPU และหน่วยความจำ จะแสดงภาพรวมของกระบวนการที่กำลังเข้าถึงเครือข่าย

ในลักษณะที่คล้ายกับเครื่องมือเช่น top, htop หรือ atop, nethogs ทำงานในแบบเต็มหน้าจอและรีเฟรชเป็นระยะเพื่อให้ภาพรวมที่ทันสมัยของการเชื่อมต่อเครือข่ายที่เกิดจากแต่ละกระบวนการ

การรับ nethogs สามารถทำได้โดยง่ายโดยใช้ตัวจัดการแพ็คเกจ ซึ่งทำให้กระบวนการง่ายขึ้นมาก

ตัวอย่างเช่น บน Debian และ Ubuntu:

 sudo apt install nethogs 

และบน Arch Linux:

 sudo pacman -S nethogs 

เกี่ยวกับครอบครัว Red Hat:

 sudo dnf install nethogs 

เพื่อให้ดำเนินการ nethogs ได้สำเร็จ ผู้ใช้จำเป็นต้องมีสิทธิ์ระดับผู้ดูแลระบบโดยได้รับสิทธิ์การเข้าถึงระดับรูท

 sudo nethogs 

หนึ่งอาจกำหนดค่า nethogs ให้ดำเนินการโดยผู้ใช้ทั่วไปผ่านการดำเนินการของคำสั่งต่อไปนี้:

 sudo setcap "cap_net_admin,cap_net_raw\+pe" /path/to/nethogs 

ในการใช้ nethogs จำเป็นต้องระบุพาธแบบเต็มของไฟล์ปฏิบัติการโดยแทนที่ “/path/to/nethogs” ในบรรทัดคำสั่งด้วยพาธจริงที่ได้รับจากเมธอด เช่น การใช้คำสั่ง’which’สิ่งนี้ทำให้มั่นใจได้ว่าโปรแกรมตั้งอยู่และดำเนินการอย่างถูกต้อง

 which nethogs 

lsof

/th/images/lsof-network.jpg

แม้ว่า lsof จะทำหน้าที่เป็นโปรแกรมอรรถประโยชน์สำหรับการจัดรายการไฟล์ที่เปิดอยู่ แต่ก็มีความชำนาญเท่าเทียมกันในการระบุการเชื่อมต่อเครือข่ายแบบเปิด ด้วยการใช้ตัวเลือก -i ผู้ใช้อาจได้รับรายการการเชื่อมต่ออินเทอร์เน็ตที่ครอบคลุมซึ่งปัจจุบันได้รับการดูแลโดยกระบวนการที่ใช้งานอยู่ภายในระบบปฏิบัติการ จากข้อเท็จจริงที่ว่าในระบบที่ใช้ Linux แม้แต่อ็อบเจ็กต์ที่ไม่ใช่ไฟล์ก็ถือว่าเป็นเช่นนี้ คุณลักษณะนี้จึงมีความสำคัญเป็นพิเศษ

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

 lsof -i 

การใช้คำสั่ง “lsof” สามารถให้ข้อมูลเกี่ยวกับกระบวนการที่รักษาการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่ รวมถึง ID กระบวนการ (PID) ตัวอธิบายไฟล์ ประเภทของการเชื่อมต่ออินเทอร์เน็ต ขนาด โปรโตคอล และชื่อไฟล์ที่เป็นทางการที่เกี่ยวข้อง

ความพร้อมใช้งานของตัวเลือก -i4 และ -i6 ช่วยให้ผู้ใช้สามารถตรวจสอบการเชื่อมต่อเครือข่ายโดยใช้ Internet Protocol เวอร์ชัน 4 (IPv4) หรือ Internet Protocol เวอร์ชัน 6 (IPv6)

มีความเป็นไปได้สูงที่คุณได้ติดตั้ง Lsof แล้ว เนื่องจากติดตั้งไว้ล่วงหน้าในลีนุกซ์รุ่นต่างๆ จำนวนมาก หรือสามารถติดตั้งได้ง่ายในรุ่นที่ไม่มีอยู่

บน Debian และ Ubuntu ให้พิมพ์:

 sudo apt install lsof 

และบนซุ้มประตู:

 sudo pacman -S lsof 

ในตระกูล distros ของ Red Hat:

 sudo dnf install lsof 

เน็ตสเตตัส

/th/images/netstat-processes.jpg

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

Netstat เป็นส่วนประกอบที่รวมอยู่ในชุดเครื่องมือ netstat ซึ่งสามารถติดตั้งได้อย่างง่ายดายบนอาร์เรย์ของ Linux ดิสทริบิวชันผ่านการใช้ระบบการจัดการแพ็คเกจมาตรฐานที่มาพร้อมกับการแจกจ่ายแต่ละรายการ

ตัวอย่างเช่น บน Debian หรือ Ubuntu:

 sudo apt install net-tools

บน Arch Linux:

 sudo pacman -S net-tools 

ในการรับยูทิลิตี้ netstat บนการกระจาย Linux เช่น Fedora, CentOS หรือ RHEL ให้ดำเนินการคำสั่งต่อไปนี้ในเทอร์มินัล:

 sudo dnf install net-tools 

ในการกำหนดค่าเริ่มต้น การดำเนินการของคำสั่ง netstat ที่พรอมต์คำสั่งจะแสดงรายละเอียดต่างๆ เช่น โปรโตคอลเครือข่าย ที่อยู่ IP และสถานะการเชื่อมต่อ อย่างไรก็ตาม เมื่อใช้อ็อพชัน -p คอลัมน์เพิ่มเติมจะแสดงขึ้น ซึ่งรวมถึงตัวระบุกระบวนการและชื่อไฟล์เรียกทำงานที่เกี่ยวข้องซึ่งเชื่อมโยงกับแต่ละการเชื่อมต่อที่ใช้งานอยู่

 netstat -p 

การเรียกใช้คำสั่ง “netstat” โดยไม่มีตัวเลือกเพิ่มเติมจะสร้างรายงานที่ครอบคลุมซึ่งมีรายละเอียดเกี่ยวกับการเชื่อมต่อเครือข่ายที่ใช้งานอยู่ทั้งหมดในขณะนั้นก่อนที่จะยุติการดำเนินการ ด้วยการใช้แฟล็ก"-c"เราอาจเข้าถึงบัญชีต่อเนื่องของการเชื่อมโยงเครือข่ายซึ่งมีการรีเฟรชข้อมูลใหม่เป็นประจำ

 netstat -pc 

วิธีการนี้คล้ายกับการใช้แอปพลิเคชันซอฟต์แวร์ที่ออกแบบมาสำหรับหน้าจอ เช่น net hogs แต่ประโยชน์อยู่ที่การแชนเนลผลลัพธ์ไปยังโปรแกรมอื่น เช่น grep หรือ paginator สำหรับการตรวจสอบอย่างใกล้ชิด:

 netstat -p | grep 'systemd' 

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

 sudo netstat

ตอนนี้คุณสามารถดูได้ว่าแอป Linux ใดกำลังกินแบนด์วิดท์ของคุณ

ลีนุกซ์ซึ่งคล้ายกับระบบปฏิบัติการร่วมสมัยหลายระบบ แสดงให้เห็นถึงการพึ่งพาซึ่งกันและกันอย่างลึกซึ้งกับอินเทอร์เน็ต ในบางครั้ง การแยกแยะว่ากระบวนการใดใช้แบนด์วิธของตนอาจเป็นเรื่องยาก โชคดีที่ยูทิลิตี้เช่น nethogs, lsof และ netstat ให้ความช่วยเหลืออันล้ำค่าในการระบุกระบวนการที่รักษาการเชื่อมต่อเครือข่ายที่ใช้งานอยู่

ในบางกรณี พฤติกรรมที่ผิดปกติอาจเกิดขึ้นได้ทั้งๆ ที่มีลิงก์อยู่แล้ว ในขอบเขตของระบบปฏิบัติการลีนุกซ์ เป็นงานที่ไม่ซับซ้อนที่จะยุติกระบวนการที่เอาแต่ใจที่อาจเกิดขึ้น