Tìm quá trình sử dụng một cổng nhất định trong Linux


139

Tôi muốn có thể tìm ra quy trình nào hiện đang sử dụng một cổng nhất định trong Linux. Có cách nào để làm điều này?


3
Trên Windows, lệnh là: netstat -anb
djangofan

Câu trả lời:


144

Bạn có một cặp đôi tùy chọn:

lsof -i tcp:80

sẽ cung cấp cho bạn danh sách các quy trình sử dụng cổng tcp 80.

Ngoài ra,

sudo netstat -nlp

sẽ cung cấp cho bạn tất cả các kết nối mạng mở.


2
lsof -i | grep {username}cũng rất hữu ích, tức làlsof -i | grep apache
LawrenceC

1
Đối với bất kỳ ai thắc mắc , -n: không giải quyết tên , -l: hiển thị ổ cắm máy chủ nghe , -p: hiển thị tên PID / Chương trình cho ổ cắm.
yellavon

Tôi thường thêm -Pvào lsof -i tcp:$PORTNUMBERđể cổng được in lại cho tôi dưới dạng số.
js.

9
netstat -lp

4
trên mac bạn phải thêm tùy chọn giao thức vào -p. vì vậy một cái gì đó như: netstat -lp tcp.
vrish88

8

Tôi đang sử dụng "CentOS 7 Minimal" cũng netstatkhông có lsof. Nhưng rất nhiều bản phân phối linux có lệnh thống kê socket (tức là ss).

Dưới đây là một ví dụ về thực thi:

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

2

Trong Linux, Để tìm một quy trình chạy trên một cổng, hãy làm dưới đây:

lsof -i :<port_number>

thí dụ:

lsof -i :8080

Cảm ơn bạn đã cố gắng để giúp đỡ. Lệnh này đã được đề cập trong câu trả lời được chấp nhận. Nếu bạn có một cái gì đó mới, xin vui lòng chỉnh sửa bài viết của bạn.
Ben N
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.