lsof และพอร์ตการฟัง


50

ฉันกำลังพยายามรับฟังกระบวนการทั้งหมดสำหรับการเชื่อมต่อเครือข่ายบน Mac OS X netstatไม่มี-pตัวเลือกและฉันกำลังลองด้วย lsof

lsof -i -sTCP:LISTEN

ให้รายชื่อที่เป็นธรรมของกระบวนการฟัง แต่ไม่ใช่ทั้งหมด ที่ฉันสามารถทำได้เช่น Telnet ไปยังพอร์ต 10080 ที่ฉันมีกระบวนการรับฟังสำหรับการเชื่อมต่อ lsofแต่นี้จะไม่แสดงในการส่งออกของ ฉันพลาดอะไรไป

$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.

แต่

$ sudo lsof -n -i | grep 10080
$

3
เอาท์พุทของ lsof พูดamandaแทน 10080 หรือไม่?
Jon Lin

3
@ จอนลินฉันไม่ได้สังเกตว่า-nมีผลกับที่อยู่เท่านั้นไม่ใช่พอร์ต ในการรับหมายเลขพอร์ตฉันต้องใช้-Pด้วย ขอบคุณ
Matteo

3
@JonLin: แต่คุณมีโพสต์lsof -i -sTCP:LISTENและมันไม่มี-nและมันก็ไม่เปิดเผย 1,10080 เกินไป -Pดังนั้นคุณต้องใช้
Hanan N.

คำตอบ:


75
sudo lsof -iTCP -sTCP:LISTEN
sudo lsof -iTCP -sTCP:LISTEN -P
sudo lsof -iTCP -sTCP:LISTEN -P -n
sudo lsof -iTCP -sTCP:LISTEN -n

ทั้งหมดคืนค่า 32 รายการเดียวกัน ( ... | wc -l) ใน Lion MBP ที่ใช้งานหนักของฉัน

-P -nป้องกันไม่ให้lsofทำการแก้ไขชื่อและไม่ได้ปิดกั้น การขาดสิ่งใดสิ่งหนึ่งต่อไปนี้อาจช้ามาก

สำหรับ sudo lsof -iUDP -P -n | egrep -v '(127|::1)'UDP: หากไม่มี-nและ-Pใช้เวลานาน

คำเตือน: นี่ไม่รวมการตั้งค่าไฟร์วอลล์


3
-Pใช่ปัญหาคือการขาดหายไป ฉันคิดว่าผิด-nใช้ไม่เพียง แต่กับ IP เท่านั้น แต่ยังมีหมายเลขพอร์ตด้วย
Matteo

-1
  1. ก่อนอื่นให้ค้นหา ID กระบวนการ (pid) ซึ่งครอบครองพอร์ตที่ต้องการ (เช่น 5434):

    ps aux | grep 5434
    
  2. ฆ่ากระบวนการนั้น:

    kill -9 <pid>
    

5
ps auxไม่แสดงรายการพอร์ตที่กระบวนการใช้
Matteo

ฉันเห็นด้วยกับ Matteo; คุณแน่ใจหรือว่าคุณไม่ได้ทำอะไรเช่น netstat -anp | grep 5434 (ซึ่งจะส่งคืนรายการสิ่งที่กำลังฟังใน 5434 และคอลัมน์แรกหรือคอลัมน์ที่สองคือ pid?)
Foon

6
ดังนั้นสามารถทำงานได้ในสถานการณ์ที่กระบวนการถูกเรียกด้วยหมายเลขพอร์ตที่กำหนดอย่างชัดเจนในสตริงการดำเนินการและส่วนหนึ่งของสตริงจะจับคู่โดย grep
techraf

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