KHÔNG sử dụng các dòng lệnh mạng trong linux, làm thế nào để biết danh sách các cổng mở và quy trình sở hữu chúng?


11

Tôi muốn biết cổng nào được sử dụng bởi quá trình nào trong nhúng-linux. Vì nó là linux-linux đơn giản, không có dòng lệnh mạng như netstat, lsof. (chỉ tồn tại các dòng lệnh cơ bản như cat, cp, echo, v.v.).

Một giải pháp một phần dường như là sử dụng các dòng lệnh "cat / Proc / net / tcp" và "cat / Proc / net / udp". Tuy nhiên, tôi không chắc danh sách in từ các dòng lệnh đó hiển thị tất cả các cổng đang sử dụngdanh sách này không hiển thị quá trình nào được liên kết với cổng nhất định .

Mọi bình luận đều sẽ được đánh giá.


Tôi nghĩ rằng câu hỏi này phù hợp hơn với Unix & Linux

Câu trả lời:


15

Bạn sẽ có thể tìm thấy tất cả các cổng mở trong /proc/net/tcp/proc/net/udp. Mỗi tệp đó có một inodecột, có thể được sử dụng để tìm quá trình sở hữu ổ cắm đó.

Khi bạn có số inode, bạn có thể chạy lệnh ls như ls -l /proc/*/fd/* | grep socket:.$INODEđể tìm các quy trình sử dụng ổ cắm đó. Trong trường hợp một quy trình đã được thiết lập với các bộ mô tả tệp khác nhau cho các luồng khác nhau, bạn có thể cần phải mở rộng lệnh ls -l /proc/*/task/*/fd/* | grep socket:.$INODEđể tìm tất cả chúng.


1
find /proc -lname "socket:\[$INODE\]" 2> /dev/null
Sammitch

0

Để tìm INODES cho bất kỳ cổng nào thực hiện bên dưới lệnh

PORT=8080;cat /proc/net/* | awk -F " " '{print $2 ":" $10 }' | grep -i `printf "%x:" $PORT` | awk -F ":" '{print "PORT=" $2 ", INODE=" $3 }'

Sử dụng bất kỳ INODE nào từ đầu ra lệnh ở trên để tìm PID liên quan như bên dưới

find /proc -lname "socket:\[$INODE\]" 2> /dev/null | head -n 1 | awk -F "/" '{print "PID="$3}'

ở đây $ INODE là giá trị của bất kỳ INODE nào

Trong một lệnh đơn, chúng ta có thể kiểm tra xem có cổng nào được mở và được liên kết với bất kỳ PID nào như dưới đây không

PORT=8080;find /proc -lname "socket:\[$(cat /proc/net/* | awk -F " " '{print $2 ":" $10 }' | grep -i `printf "%x:" $PORT` | head -n 1 | awk -F ":" '{print $3}')\]" 2> /dev/null | head -n 1 | awk -F "/" '{print "PID="$3}'
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.