ค้นหากระบวนการที่ใช้พอร์ตที่แน่นอนใน Linux


139

ฉันต้องการทราบว่ากระบวนการใดที่ใช้พอร์ตใน Linux ในปัจจุบัน มีวิธีการทำเช่นนี้?


3
บน Windows คำสั่งคือ: netstat -anb
djangofan

คำตอบ:


144

คุณมีตัวเลือกสองทาง:

lsof -i tcp:80

จะให้รายการของกระบวนการที่ใช้ tcp พอร์ต 80

อีกวิธีหนึ่งคือ

sudo netstat -nlp

จะให้การเชื่อมต่อเครือข่ายเปิดทั้งหมดแก่คุณ


2
lsof -i | grep {username}ยังมีประโยชน์มากเช่นlsof -i | grep apache
LawrenceC

1
สำหรับทุกคนที่สงสัยว่า-n: อย่าแก้ไขชื่อ, -l: แสดงซ็อกเก็ตเซิร์ฟเวอร์การฟัง, -p: แสดงชื่อ PID / โปรแกรมสำหรับซ็อกเก็ต
yellavon

ฉันมักจะเพิ่ม-Pเพื่อlsof -i tcp:$PORTNUMBERให้พอร์ตที่จะพิมพ์กลับมาให้ฉันเป็นจำนวน
js


8

ฉันใช้ "CentOS 7 น้อยที่สุด" ซึ่งมีหรือไม่netstat lsofแต่การแจกแจงลินุกซ์จำนวนมากมีคำสั่งซ็อกเก็ตสถิติ (เช่นss)

นี่คือตัวอย่างของการดำเนินการ:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

2

ใน Linux หากต้องการค้นหากระบวนการที่ทำงานอยู่บนพอร์ตให้ทำดังนี้:

lsof -i :<port_number>

ตัวอย่าง:

lsof -i :8080

ขอบคุณที่พยายามช่วย คำสั่งนี้ถูกกล่าวถึงในคำตอบที่ยอมรับ หากคุณมีสิ่งใหม่โปรดแก้ไขโพสต์ของคุณ
Ben N
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.