lsof ve dinleme portları


50

Mac OS X'te bir ağ bağlantısı için dinleme tüm işlemleri almaya çalışıyorum netstatyok -pseçeneği ve ben lsof ile çalışıyorum

lsof -i -sTCP:LISTEN

Bana hepsi için değil, dinleme süreçlerinin adil bir listesini verir. Örneğin bağlantı 10080'e bağlantı kurabilirim, burada bağlantıyı dinleyen bir işlemim var ancak bu çıkışta gösterilmiyor lsof. Neyi kaçırıyorum?

$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.

fakat

$ sudo lsof -n -i | grep 10080
$

3
Lsof'un çıktısı amanda10080 yerine mi diyor ?
Jon Lin,

3
@JonLin -nYalnızca bağlantı noktalarını değil adresleri etkilediğini fark etmedim . Bağlantı noktası numaralarını almak için de kullanmam gerekiyor -P. Teşekkürler
Matteo,

3
@JonLin: ama mesajınız var lsof -i -sTCP:LISTEN, ve olmadan ve 10080'i -nde ortaya koymadı. Yani kullanmak zorundasın -P.
Hanan N.

Yanıtlar:


75
sudo lsof -iTCP -sTCP:LISTEN
sudo lsof -iTCP -sTCP:LISTEN -P
sudo lsof -iTCP -sTCP:LISTEN -P -n
sudo lsof -iTCP -sTCP:LISTEN -n

Hepsi ... | wc -lbenim yoğun kullanılan Lion MBP'mde aynı 32 girişi ( ) döndürüyor.

-P -nlsofad çözümlemesi yapmayı engeller ve engellemez. Bunlardan herhangi birini özlüyorum, çok yavaş olabilir.

UDP için: sudo lsof -iUDP -P -n | egrep -v '(127|::1)'. Olmadan -nve -Puzun zaman alır.

Hatırlatma: Bu, güvenlik duvarı ayarlarını içermez.


3
Evet sorun eksikti -P. Yanlışlıkla -nsadece IP'lere değil, port numaralarına da uygulandığını varsaydım .
Matteo,

-1
  1. Öncelikle, gerekli portu işgal eden İşlem Kimliğini (pid) öğrenin (örn. 5434):

    ps aux | grep 5434
    
  2. Öldürün bu işlemi:

    kill -9 <pid>
    

5
ps auxbir işlemin kullanıldığı portları listelemiyor
Matteo,

Matteo ile aynı fikirdeyim; netstat -anp gibi bir şey yapmadığınızdan emin misiniz? grep 5434 (5434'te dinleyenlerin bir listesini döndürür, ilk veya ikinci sütun ise pid olur mu?)
Foon

6
Bu nedenle, yalnızca işlem dizisinde açıkça verilen bağlantı noktası numarasıyla bir işlemin çağrıldığı ve dizenin bu kısmının grep ile eşleneceği bir durumda çalışabilir.
Techraf

1
kill -9Bir süreçten kurtulmak için ilk seçenek olarak kullanmak aşırı bir seçimdir. Ayrıca, bu aslında bir şeyi öldürmekle ilgili değil, neyin kaçtığını bulmakla ilgili soruya cevap vermiyor.
Lindes
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.