Mencari di / proc / $ mypid / fd /, saya melihat file-file ini
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 0 -> /dev/pts/36 (deleted)
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 3 -> socket:[1424055856]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 4 -> socket:[1424055868]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 5 -> socket:[1424055882]
Karena saya memiliki akses ke kode, saya tahu soket ini terikat pada koneksi TCP (satu adalah koneksi ke port 5672 pada beberapa mesin, yang lain adalah koneksi ke port 3306 pada beberapa mesin lain), tetapi saya ingin tahu soket mana yang terikat pada koneksi mana. Bagaimana saya bisa melakukan itu?
Secara umum, bagaimana saya bisa bertanya pada OS apa yang ada di ujung soket?
networking
proc
socket
benhsu
sumber
sumber
socat
....Jawaban:
Perintah lsof
Pilihan yang bagus mungkin
lsof
. Sebagaiman lsof
pernyataan, sangat berguna untuk mendapatkan informasi tentangopen files such as Internet sockets or Unix Domain sockets
.Menggunakannya
Pada awalnya, dapatkan gambaran umum tentang
/proc/$PID/fd/
dan nomor soket yang tercantum.Misalnya,
socket:[14240]
mungkin menarik bagi Anda.Kemudian gunakan
lsof -i -a -p $PID
untuk mencetak daftar semua$PID
penggunaan file jaringan .-i
menghasilkan daftar file jaringan milik pengguna atau proses-a
menggabungkan secara logis atau parameter yang diberikan AND-p $PID
pilih info hanya tentang proses AndaOutput khas untuk browser saya yang menjalankan dengan PID
2543
mungkin:dan lebih banyak garis yang serupa.
Besar! Sekarang perhatikan
DEVICE
kolom ini lebih dekat. Ini cocok dengan soket kami yang sebelumnya terdaftar dari/proc/$PID/fd/
!Dan berkat
NAME
bagian ini kita dapat mengatakan apa ujung soket kita.Dalam menjalankan dunia nyata Anda mungkin mendapatkan jumlah output yang baik, tetapi cukup filter atau
grep
untuk soket menarik Anda.Saya cukup yakin orang bisa menggabungkan semua perintah, tetapi itu sudah cukup untuk membantu Anda memulai.
sumber
grep -rni ffff88002704d380 /proc
. suatu tempat di bawah / proc / mungkin berbohong jawabancat
Anda , grep file Anda ditemukan. Tapi jangan jelaskan ini ... Mungkin salah besar di sini.lsof
membaca informasi lain tentang soket dari/proc/net/tcp
,/proc/net/tcp6
,/proc/net/udp
, dan sebagainya tergantung pada jenis socket.