Bir ağda hangi sürecin dinlendiğini göstermek için netstat nasıl kullanılır


27

OS X Mountain Lion dizüstü bilgisayarındayım ve üzerinde bir çift Vagrant kutusu var. Hangi işlemin 8080 numaralı bağlantı noktasını dinlediğini anlamaya çalışıyorum. Varyasyonlarım yüz satır gibi üretiliyor ancak belirli bağlantı noktası numarası yok. Gibi bir şey farz ediyorum:

netstat -XXX | grep 8080

Bu ev ortamında mı yoksa profesyonel bir ortamda mı?
Lucas Kauffman,

peki, yerel olarak bir sunucuyu enviro olarak yeniden oluşturmak. farklı siteye geçmek istiyorsanız sorun değil. Farklı netstat sürümleri farklı argümanları destekler.
saat

Tamam o zaman efendim, burada her şey yolunda görünüyor, lütfen devam edin ve iyi günler.
Lucas Kauffman,

Yanıtlar:


52

Ne yazık ki OSX’te, size netstatbelirli bir bağlantı noktasına bağlı işlem kimliğini göstermeyecek olan BSD’ye mahkumsunuz . Bunun yerine yapmanız gereken kullanımdır lsof. Kullanmanız gereken sözdizimi:

lsof -i :8080

Bu, çoğu umursamadığınız bilgiyi açığa çıkarır, ancak alanlar iyi etiketlenir. Örneğin, bu örnek çıktıyı inceleyin.

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

Bu, 53237 numaralı bağlantı noktasının 927 numaralı işlem kimliği tarafından kullanıldığını söylüyor. COMMAND alanını okurken bu çıktının kesildiğini unutmayın, gerçekte ikili kodun tam adı GoogleTalkPlugin'dir.


thx, bu beni daha da yakınlaştırıyor, oldukça genel bir duruma gidiyor VBoxHeadl- şu anda hangi VirtualBox örneğinin (şu anda iki tane var) olduğunu görmenin bir yolu var mı yoksa çok fazla soruyorum (olasılıkla ikincisi). thx
timpone

@timpone: VirtualBox hakkında o yolda yardımcı olacak kadar bilgim yok. Orada listelenip listelenmediğini görmek için işlem komut satırını kontrol edebilir veya lsof -p PIDbulana kadar açık dosyaların listesini kullanabilir ve göz atabilirsiniz.
Scott Pack,

serin, yardım için
teşekkürler

8

Dinleme portunun PID'sini ararken kullanmak istediğim şey budur. Linux kullanımı için:netstat -tunlp

  • n ağı
  • l dinleme bağlantı noktaları
  • p süreci
  • t tcp
  • uudp

Ek bilgi man sayfalarında bulunabilir.


-pprogramdaki argümanları listelemez. Bunu nasıl görebilirim?
jameshfisher

4
OP, OSX'i sordu. -p, netstat'ın OSX sürümünde bir seçenek değildir.
Ted Bigham

-pOSX üzerinde port. Geliştiricilerin OSX ve Linux için farklı argümanlar yapma kararlarından nefret ediyorum ...
Daniel W.


4

Benim için, aşağıdaki iki satır hangi uygulamaların dinleme bağlantı noktalarının açık olduğunu ve tünelin açık olduğunu göstermek için en iyi sonucu verir: lsof tamamen platformlar arasıdır:

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN

1

Özel port kullanımını netstat komutunun altında bulmak için

  netstat -an | grep ':8080'

3
OP süreci almak istedi. Bu işlem kimliğini göstermez.
Ted Bigham

1

Adam Netstat’tan

-p, --program Her soketin ait olduğu programın PID'sini ve adını gösterin.

Genelde bunu sadece yaparım: netstat -antup | grep 8080


hmm ... bu istediğim gibi geliyor ama bu bana OS X'te -p için farklı seçenekler sunuyor-p protocol Show statistics about protocol, which is either a well-known name
saat

@timpone: -pPID'yi görüntülemek bir GNU netstat komutudur, oysa OSX BSD netstat'ı kullanır.
Scott Pack

-pprogramdaki argümanları listelemez. Bunu nasıl görebilirim?
jameshfisher

1
OP, OSX'i sordu. -p, netstat'ın OSX sürümünde bir seçenek değildir.
Ted Bigham

-pOSX üzerinde port. Geliştiricilerin OSX ve Linux için farklı argümanlar yapma kararlarından nefret ediyorum ...
Daniel W.

0

Aşağıdaki komut bağlantıyı gösterir:

netstat -antop | grep :8080

Tüm akışı gerçek zamanlı olarak görüntülemek için şunları kullanabilirsiniz watch:

watch -d -t -n 1 'lsof -n -i :8080'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.