Cổng mạng mở, nhưng không có quy trình kèm theo?


22

Tôi có một tình huống kỳ lạ xảy ra với một cổng mạng mở. Câu hỏi chính của tôi là, tại sao sẽ không có một chương trình liên quan đến cổng TCP mở:

netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      -  

Đối với trường hợp cụ thể của tôi, có một trình nền nrpe (cài đặt opsview) đang nghe trên cổng 5666, nhưng không có trình nền nrpe nào đang chạy. Nếu tôi cố gắng khởi động nó, nó sẽ thoát ra ngay lập tức.

lsof -i :5666không hiển thị bất kỳ đầu ra nào. Không có (x) inetd chạy trên hệ thống của tôi.

CẬP NHẬT

Vâng, tôi đã chạy các lệnh đó như root. Telnet sẽ có thể, nhưng không bao giờ có bất kỳ phản hồi nào.

Sau khi điều tra thêm, tôi đã tìm thấy một lỗi kernel dmesg: đây là một phiên bản EC2 (thực tế là một vài trong số chúng) đang chạy kernel cũ hơn (2.6.16 rõ ràng là không ổn định). Cách khắc phục để ngăn chặn sự cố là nâng cấp hạt nhân .

Có vẻ như cách kernel bị lỗi khiến quá trình biến mất và để cổng mở.


2
Kết quả của: lsof -i tcp: 5666 là gì? Cổng có ở lại đó khi bạn khởi động lại không?
Dave Drager

Đây có phải là bản cài đặt mới của NRPE không?
fpmurphy

Bạn cần chạy netstat với quyền root để xem chi tiết chương trình
eckes

Vui lòng thêm câu trả lời cho câu hỏi của riêng bạn ...
rogerdpack

Câu trả lời:


6

Các cổng được mở bởi kernel sẽ không hiển thị với tên chương trình. Một số công cụ NFS và OCFS xuất hiện trong tâm trí. Có lẽ đó là một cái gì đó như thế?

Hoặc nó có thể là một lỗi kernel. Kiểm tra nhật ký kernel cho OOPS và BUG.


24

Bạn đã chạy netstat và lsof với quyền root hay với sudo chưa? Lưu ý cột cuối cùng:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd

Từ trang web netstat:

Bạn cũng sẽ cần các đặc quyền siêu người dùng để xem thông tin này trên các ổ cắm mà bạn không sở hữu.

Làm thế nào để bạn biết không có ai đang chạy? Nếu cổng đang được sử dụng, điều đó có nghĩa là nó sẽ thoát ngay lập tức với lỗi 'socket in use'. Điều gì xảy ra khi bạn telnet đến cổng?

telnet localhost 5666

4

thực hiện 'netstat --tcp --udp - listening --program' với tư cách là người dùng root . khôn ngoan khác, bạn sẽ không cung cấp cho PID / Tên chương trình

sau đó sử dụng lệnh kill -9 PID


3

Tôi thực sự đã viết một kịch bản shell nhỏ để giúp id những câu hỏi không thường xuyên này:

#! /bin/bash
([ "$1" = "" ] || [ "$2" = "" ]) && echo "Usage: tracer <space> <port>" && exit 0
for i in `fuser -n $1 $2`
 do
  ps aux | grep $i | grep -v 'grep'
 done

lưu dưới dạng / usr / local / bin / tracer; đầu ra:

root@mo-log:/usr/flows# tracer tcp 80
80/tcp:             
root     27904  0.0  0.0 111668  3292 ?        Ss   Aug04   0:03 /usr/sbin/apache2 -k start
www-data 32324  0.0  0.0 335332  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start
www-data 32327  0.0  0.0 335324  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start

Bạn sẽ cần quyền root để sử dụng nó


Tốt nhưng tôi cần nhiều hơn, tôi cần thực hiện nó cho mỗi kết nối trong netstat. Sau đó tôi có thể xác định những gì một chương trình đang làm. Đó là một hộp không có lsof / fstat hoặc các tiện ích tốt đẹp khác, và khi root tôi không thể cài đặt chúng vì các vấn đề khác.
Aki

3

Tôi đã có thể theo dõi quá trình bằng cách lấy inode của nó qua netstat và sau đó sử dụng inode đó với lsof. Xem câu trả lời chi tiết hơn của tôi trong /server//a/847910/94376 .


2

Đôi khi, các chương trình liên quan đến nfs không thể được nhìn thấy trong danh sách chương trình.

Ngoài ra, các mô-đun LDAP pam và libnss_ldap mở các kết nối đến các máy chủ ldap, nhưng không có một quy trình thực tế nào giữ kết nối mở, vì vậy netstat -tnp hiển thị kết nối hoạt động mà không cần quá trình.

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.