cổng lsof và lắng nghe


50

Tôi đang cố gắng để có được tất cả các quy trình lắng nghe kết nối mạng trên Mac OS X. netstatkhông có -ptùy chọn này và tôi đang thử với lsof

lsof -i -sTCP:LISTEN

cung cấp cho tôi một danh sách công bằng các quá trình nghe nhưng không phải tất cả. Tôi có thể ví dụ telnet đến cổng 10080 nơi tôi có quá trình lắng nghe kết nối nhưng điều này không được hiển thị trong đầu ra của lsof. Tôi đang thiếu gì?

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

nhưng

$ sudo lsof -n -i | grep 10080
$

3
Liệu đầu ra của lsof nói amandathay vì 10080?
Jon Lin

3
@JonLin Tôi không nhận thấy rằng -nchỉ ảnh hưởng đến địa chỉ và không phải cổng. Để có được số cổng tôi cũng phải sử dụng -P. Cảm ơn
Matteo

3
@JonLin: nhưng bạn có bài đăng lsof -i -sTCP:LISTEN, và nó không có -nvà nó cũng không tiết lộ 10080. Vì vậy, bạn phải sử dụng -P.
Hanan N.

Câu trả lời:


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

Tất cả trả về cùng 32 mục ( ... | wc -l) trên Lion MBP được sử dụng nhiều của tôi.

-P -nngăn không lsofthực hiện phân giải tên và nó không chặn. Thiếu một trong hai thứ này, nó có thể rất chậm.

Đối với UDP : sudo lsof -iUDP -P -n | egrep -v '(127|::1)'. Không có -n-Pphải mất một thời gian dài.

Nhắc nhở: Điều này không bao gồm các cài đặt tường lửa.


3
Vâng, vấn đề là mất tích -P. Tôi đã giả định sai -nkhông chỉ áp dụng cho IP mà cả số cổng.
Matteo

-1
  1. Trước tiên hãy tìm Id quá trình (pid) đã chiếm cổng yêu cầu (ví dụ 5434):

    ps aux | grep 5434
    
  2. Giết quá trình đó:

    kill -9 <pid>
    

5
ps auxkhông liệt kê các cổng mà một quy trình đang sử dụng
Matteo

Tôi đồng ý với Matteo; bạn có chắc là bạn không làm gì đó như netstat -anp | grep 5434 (sẽ trả về một danh sách các nội dung đang nghe trên 5434 và cột thứ nhất hoặc thứ hai là pid?)
Foon

6
Do đó, chỉ có thể hoạt động trong trường hợp một quy trình được gọi với số cổng được đưa ra rõ ràng trong chuỗi thực thi và một phần của chuỗi sẽ được khớp bởi grep.
techraf

1
Sử dụng kill -9như một lựa chọn đầu tiên để thoát khỏi một quá trình là một lựa chọn cực đoan. Ngoài ra, điều này không thực sự trả lời câu hỏi, không phải là về việc giết chết mọi thứ, mà là tìm hiểu những gì đang chạy.
buộc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.