Saya menggunakan laptop OS X Mountain Lion dan memiliki beberapa kotak Vagrant. Saya mencoba mencari tahu proses mana yang sedang mendengarkan pada port 8080. Variasi saya menghasilkan seperti seratus baris tetapi tidak ada dengan nomor port tertentu. Saya mengasumsikan sesuatu seperti:
netstat -XXX | grep 8080
networking
macos
netstat
timpone
sumber
sumber
Jawaban:
Sayangnya pada OSX Anda terjebak dengan BSD
netstat
yang tidak akan menunjukkan kepada Anda proses ID yang dilampirkan ke port yang diberikan. Yang harus Anda lakukan adalah menggunakanlsof
. Sintaks yang perlu Anda gunakan adalah:Ini akan mencetak sekumpulan informasi, yang sebagian besar tidak Anda pedulikan, tetapi bidangnya diberi label dengan baik. Sebagai contoh, lihat contoh output ini.
Ini memberitahu saya bahwa port 53237 sedang digunakan oleh proses ID 927. Ketika membaca bidang PERINTAH ingat bahwa output ini terpotong, pada kenyataannya nama lengkap biner adalah GoogleTalkPlugin.
sumber
VBoxHeadl
- apakah ada cara untuk melihat contoh VirtualBox (punya dua sekarang) atau saya bertanya terlalu banyak (mungkin yang terakhir). thxlsof -p PID
dan menelusuri daftar file yang terbuka sampai Anda menemukannya.Ini adalah apa yang saya suka gunakan ketika mencari PID port mendengarkan. Untuk penggunaan Linux:
netstat -tunlp
Informasi tambahan dapat ditemukan di halaman manual.
sumber
-p
tidak mencantumkan argumen ke program. Bagaimana saya melihat ini?-p
pada OSX adalahport
. Saya benci keputusan pengembang untuk membuat argumen berbeda untuk OSX dan Linux ...Saya sedang dalam proses memodifikasi
netstat
pada OS X untuk menyediakan fitur ini dan menemukan fakta yang-v
akan memberi Anda pid yang terkait dengan soket.sumber
-v
meningkatkan tingkat bertele-tele dan didokumentasikan. developer.apple.com/library/mac/documentation/Darwin/Reference/…Bagi saya, dua baris berikut ini berfungsi paling baik untuk menunjukkan aplikasi mana yang memiliki port mendengarkan terbuka, dan tunnel, lsof sepenuhnya lintas platform:
sumber
Untuk mengetahui port tertentu gunakan di bawah perintah netstat
sumber
Dari man netstat
-p, --program Tunjukkan PID dan nama program yang dimiliki oleh setiap soket.
Saya biasanya hanya melakukan ini: netstat -antup | grep 8080
sumber
-p protocol Show statistics about protocol, which is either a well-known name
-p
menampilkan PID adalah perintah netstat GNU sedangkan OSX menggunakan BSD netstat.-p
tidak mencantumkan argumen ke program. Bagaimana saya melihat ini?-p
pada OSX adalahport
. Saya benci keputusan pengembang untuk membuat argumen berbeda untuk OSX dan Linux ...Perintah di bawah ini menunjukkan koneksi:
Untuk melihat alur lengkap dalam waktu nyata Anda dapat menggunakan
watch
:sumber