Câu trả lời:
Nếu bạn quan tâm đến một cổng cụ thể, bạn có thể sử dụng ví dụ này:
lsof -i 4tcp:8080 -sTCP:LISTEN
Nếu bạn chỉ muốn lấy id quá trình, bạn có thể chạy nó:
lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Tôi sử dụng lệnh dưới đây khi tôi muốn xem mọi thứ trên một cổng cụ thể cho TCP hoặc UDP. Các -n
disable tùy chọn cố gắng để giải quyết các địa chỉ IP thành tên miền, và -P
vô hiệu hóa nỗ lực để tìm ra tên của một cổng cụ thể. Ngoài ra, chạy như root
sẽ hiển thị cho bạn nhiều quy trình hơn là chạy như một người dùng bình thường.
sudo lsof -iTCP:53 -iUDP:53 -n -P
Ví dụ mã sau liệt kê tất cả các máy chủ TCP đang chạy trên máy OSX cục bộ của bạn:
netstat -a -Ptcp | egrep 'tcp4.*LISTEN'
tcp4 0 0 127.0.0.1.2022 *.* LISTEN 0 0
tcp4 0 0 *.3141 *.* LISTEN 0 0
LISTEN
chỉ hiển thị các ổ cắm nghe các kết nối. Đó là, các máy chủ.
Dòng đầu tiên cho thấy một máy chủ bị ràng buộc với localhost
, còn gọi là 127.0.0.1
cổng 2022
. Nó sẽ trả lời các yêu cầu địa phương, nhưng không phải các yêu cầu dựa trên Internet.
Dòng thứ hai là một máy chủ được liên kết với tất cả các địa chỉ, tức là *
cổng 3141
. Nó sẽ trả lời các truy vấn Internet.
Để liệt kê các cổng được sử dụng bởi máy khách và máy chủ, hãy sử dụng như sau:
netstat -an -Ptcp | grep tcp4
Điều này có thể có trong một cửa sổ đầu cuối bằng lệnh Netstat .
Và nếu bạn thích cách GUI hơn:
Với Mac OS X 10.5, thư mục / Ứng dụng / Tiện ích chứa tiện ích mạng có tên: Tiện ích mạng, xem tab Netstat để biết các thống kê này được trình bày trong ứng dụng gui, cùng với Ping, Tra cứu, Traceroute, Whois, Finger và Port Scan.
netstat
trên các máy chủ dựa trên BSD không liệt kê bất kỳ thông tin quy trình nào ... đó là câu hỏi.