ฉันต้องการทราบว่ากระบวนการใดที่ใช้พอร์ตใน Linux ในปัจจุบัน มีวิธีการทำเช่นนี้?
ฉันต้องการทราบว่ากระบวนการใดที่ใช้พอร์ตใน Linux ในปัจจุบัน มีวิธีการทำเช่นนี้?
คำตอบ:
คุณมีตัวเลือกสองทาง:
lsof -i tcp:80
จะให้รายการของกระบวนการที่ใช้ tcp พอร์ต 80
อีกวิธีหนึ่งคือ
sudo netstat -nlp
จะให้การเชื่อมต่อเครือข่ายเปิดทั้งหมดแก่คุณ
lsof -i | grep {username}
ยังมีประโยชน์มากเช่นlsof -i | grep apache
-n
: อย่าแก้ไขชื่อ, -l
: แสดงซ็อกเก็ตเซิร์ฟเวอร์การฟัง, -p
: แสดงชื่อ PID / โปรแกรมสำหรับซ็อกเก็ต
-P
เพื่อlsof -i tcp:$PORTNUMBER
ให้พอร์ตที่จะพิมพ์กลับมาให้ฉันเป็นจำนวน
netstat -lp
ฉันใช้ "CentOS 7 น้อยที่สุด" ซึ่งมีหรือไม่netstat
lsof
แต่การแจกแจงลินุกซ์จำนวนมากมีคำสั่งซ็อกเก็ตสถิติ (เช่นss
)
นี่คือตัวอย่างของการดำเนินการ:
# ss -tanp | grep 6379
LISTEN 0 128 127.0.0.1:6379 *:* users:(("redis-server",pid=2531,fd=4))
ใน Linux หากต้องการค้นหากระบวนการที่ทำงานอยู่บนพอร์ตให้ทำดังนี้:
lsof -i :<port_number>
ตัวอย่าง:
lsof -i :8080
netstat -anb