Saya agak bingung bahwa di dalam wadah Docker lsof -i
tidak menghasilkan output apa pun.
Contoh (semua perintah / output dari dalam wadah):
[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 -
Harap perhatikan juga bagaimana tidak ada PID atau nama program yang ditunjukkan oleh netstat
. fuser
juga memberikan hasil yang agak membingungkan dan tidak dapat menentukan PID juga.
Adakah yang bisa menjelaskan hal ini?
- Bagaimana saya bisa mengganti
lsof -i
(untuk melihat nama proses juga!) - Mengapa output dari
netstat
pincang juga?
NB: Kontainer berjalan dengan "ExecDriver": "native-0.1"
, itu adalah layer eksekusi Docker sendiri, bukan 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:
(Saya tidak terobsesi dengan Permission denied
, karena angka-angka itu. Yang membingungkan saya adalah daftar PID kosong setelahnya 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)
Ada beberapa output lagi untuk pengguna yang terhubung, yang diidentifikasi dengan benar juga, tetapi hanya itu. Tampaknya tidak mungkin untuk membedakan jenis ( lsof -i
batasan untuk soket internet) "objek" tertentu.
sshd
terkait) baris, beberapa di antaranya bisa menjadi soket TCP, sebagai TYPE
unknown
. Aneh. Menambahkan output ke pertanyaan saya.
strace -s 2000 -o lsof.log lsof -i
kemungkinan akan memberi Anda wawasan tambahan tentang apa yang diblokir.
strace
itu sendiri terbatas dalam wadah. Hal-hal baru yang menarik untuk dipelajari. Terima kasih telah memunculkan ide. Tapi harus tidur.
lsof
dilaporkan? Sama?