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
– บอกให้แสดงการเชื่อมต่อ TCPn
– สั่งให้แสดงที่อยู่ที่เป็นตัวเลข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 หรือไม่ โปรดแจ้งให้เราทราบผ่านแบบฟอร์มความคิดเห็นด้านล่าง