Tôi hơi khó hiểu rằng bên trong một Docker container lsof -i
không mang lại bất kỳ đầu ra nào.
Ví dụ (tất cả các lệnh / đầu ra từ bên trong container):
[1] root@ec016481cf5f:/# lsof -i
[1] root@ec016481cf5f:/# netstat -tulpn
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:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
Cũng xin lưu ý làm thế nào không có tên chương trình hoặc tên chương trình được hiển thị bởi netstat
. fuser
cũng cung cấp đầu ra hơi khó hiểu và cũng không thể xác định chính xác các PID.
bất cứ ai có thể rụng bất kỳ ánh sáng về điều này?
- Làm thế nào tôi có thể thay thế
lsof -i
(để xem tên quá trình là tốt!) - Tại sao đầu ra của
netstat
què là tốt?
NB: Container chạy với "ExecDriver": "native-0.1"
, đó là lớp thực thi riêng của Docker, không phải LXC.
[1] root@ec016481cf5f:/# fuser -a4n tcp 22
Cannot stat file /proc/1/fd/0: Permission denied
Cannot stat file /proc/1/fd/1: Permission denied
Cannot stat file /proc/1/fd/2: Permission denied
Cannot stat file /proc/1/fd/3: Permission denied
Cannot stat file /proc/1/fd/255: Permission denied
Cannot stat file /proc/6377/fd/0: Permission denied
Cannot stat file /proc/6377/fd/1: Permission denied
Cannot stat file /proc/6377/fd/2: Permission denied
Cannot stat file /proc/6377/fd/3: Permission denied
Cannot stat file /proc/6377/fd/4: Permission denied
22/tcp:
(Tôi không bị ám ảnh bởi Permission denied
, bởi vì những con số đó. Điều khiến tôi bối rối là danh sách trống của các PID sau 22/tcp
.)
# lsof|awk '$1 ~ /^sshd/ && $3 ~ /root/ {print}'
sshd 6377 root cwd unknown /proc/6377/cwd (readlink: Permission denied)
sshd 6377 root rtd unknown /proc/6377/root (readlink: Permission denied)
sshd 6377 root txt unknown /proc/6377/exe (readlink: Permission denied)
sshd 6377 root 0 unknown /proc/6377/fd/0 (readlink: Permission denied)
sshd 6377 root 1 unknown /proc/6377/fd/1 (readlink: Permission denied)
sshd 6377 root 2 unknown /proc/6377/fd/2 (readlink: Permission denied)
sshd 6377 root 3 unknown /proc/6377/fd/3 (readlink: Permission denied)
sshd 6377 root 4 unknown /proc/6377/fd/4 (readlink: Permission denied)
sshd 6442 root cwd unknown /proc/6442/cwd (readlink: Permission denied)
sshd 6442 root rtd unknown /proc/6442/root (readlink: Permission denied)
sshd 6442 root txt unknown /proc/6442/exe (readlink: Permission denied)
sshd 6442 root 0 unknown /proc/6442/fd/0 (readlink: Permission denied)
sshd 6442 root 1 unknown /proc/6442/fd/1 (readlink: Permission denied)
sshd 6442 root 2 unknown /proc/6442/fd/2 (readlink: Permission denied)
sshd 6442 root 3 unknown /proc/6442/fd/3 (readlink: Permission denied)
sshd 6442 root 4 unknown /proc/6442/fd/4 (readlink: Permission denied)
sshd 6442 root 5 unknown /proc/6442/fd/5 (readlink: Permission denied)
Có một số đầu ra nữa cho người dùng được kết nối, cũng được xác định chính xác, nhưng đó là nó. Rõ ràng là không thể phân biệt được loại nào ( lsof -i
giới hạn đối với ổ cắm internet) một "đối tượng" nhất định.
sshd
liên quan), một số trong đó có thể là ổ cắm TCP, như TYPE
unknown
. Kỳ lạ. Áp dụng đầu ra cho câu hỏi của tôi.
strace -s 2000 -o lsof.log lsof -i
nó có thể sẽ cung cấp cho bạn một số hiểu biết bổ sung về những gì bị chặn.
strace
chính nó được giới hạn trong container. Công cụ mới thú vị để tìm hiểu. Cảm ơn cho ý tưởng nảy. Phải đánh giường, mặc dù.
lsof
báo cáo? Giống nhau?