ค้นหาเว็บไซต์

3 วิธีในการค้นหากระบวนการ Linux ที่กำลังฟังบนพอร์ต


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

ในคำแนะนำสั้นๆ นี้ เราจะแสดงวิธีต่างๆ ในการค้นหากระบวนการ/บริการที่รับฟังบนพอร์ตเฉพาะใน Linux

1. การใช้คำสั่ง netstat

คำสั่ง netstat (สถิติเครือข่าย) ใช้เพื่อแสดงข้อมูลเกี่ยวกับการเชื่อมต่อเครือข่าย ตารางเส้นทาง สถิติอินเทอร์เฟซ และอื่นๆ มีอยู่ในระบบปฏิบัติการที่คล้าย Unix ทั้งหมดรวมถึง Linux และบน Windows OS

ในกรณีที่คุณไม่ได้ติดตั้งไว้ตามค่าเริ่มต้น ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง

sudo apt-get install net-tools    [On Debian/Ubuntu & Mint] 
sudo dnf install net-tools        [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
pacman -S netstat-nat             [On Arch Linux]
emerge sys-apps/net-tools         [On Gentoo]
sudo dnf install net-tools        [On Fedora]
sudo zypper install net-tools     [On openSUSE]

เมื่อติดตั้งแล้วคุณสามารถใช้กับคำสั่ง grep เพื่อค้นหากระบวนการหรือบริการที่ฟังบนพอร์ตเฉพาะใน Linux ได้ดังนี้ (ระบุพอร์ต)

netstat -ltnp | grep -w ':80' 

ในคำสั่งข้างต้นแฟล็ก

  • l - บอกให้ netstat แสดงเฉพาะซ็อกเก็ตการฟัง
  • t – บอกให้แสดงการเชื่อมต่อ TCP
  • n – สั่งให้แสดงที่อยู่ที่เป็นตัวเลข
  • p – เปิดใช้งานการแสดง ID กระบวนการและชื่อกระบวนการ
  • grep -w – แสดงการจับคู่ของสตริงที่ตรงกันทุกประการ (:80)

หมายเหตุ: คำสั่ง netstat เลิกใช้แล้วและแทนที่ด้วยคำสั่ง ss สมัยใหม่ใน Linux

2. การใช้คำสั่ง lsof

คำสั่ง lsof (List Open Files) ใช้เพื่อแสดงรายการไฟล์ที่เปิดอยู่ทั้งหมดบนระบบ Linux

หากต้องการติดตั้งบนระบบของคุณ ให้พิมพ์คำสั่งด้านล่าง

sudo apt-get install lsof     [On Debian, Ubuntu and Mint]
sudo yum install lsof         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/lsof  [On Gentoo Linux]
sudo pacman -S lsof           [On Arch Linux]
sudo zypper install lsof      [On OpenSUSE]    

หากต้องการค้นหากระบวนการ/บริการที่รับฟังบนพอร์ตใดพอร์ตหนึ่ง ให้พิมพ์ (ระบุพอร์ต)

lsof -i :80

3. การใช้คำสั่งฟิวเซอร์

คำสั่ง fuser แสดง PID ของกระบวนการที่ใช้ไฟล์หรือระบบไฟล์ที่ระบุใน Linux

คุณสามารถติดตั้งได้ดังนี้:

sudo apt-get install psmisc     [On Debian, Ubuntu and Mint]
sudo yum install psmisc         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/psmisc  [On Gentoo Linux]
sudo pacman -S psmisc           [On Arch Linux]
sudo zypper install psmisc      [On OpenSUSE]    

คุณสามารถค้นหากระบวนการ/บริการที่รับฟังบนพอร์ตใดพอร์ตหนึ่งได้โดยการรันคำสั่งด้านล่าง (ระบุพอร์ต)

fuser 80/tcp

จากนั้นค้นหาชื่อกระบวนการโดยใช้หมายเลข PID ด้วยคำสั่ง ps เช่นนั้น

ps -p 2053 -o comm=
ps -p 2381 -o comm=

คุณยังสามารถดูคำแนะนำที่เป็นประโยชน์เกี่ยวกับกระบวนการต่างๆ ใน Linux ได้

นั่นคือทั้งหมด! คุณทราบวิธีการอื่นใดในการค้นหากระบวนการ/บริการที่รับฟังบนพอร์ตเฉพาะใน Linux หรือไม่ โปรดแจ้งให้เราทราบผ่านแบบฟอร์มความคิดเห็นด้านล่าง