23 Mart 2017 Perşembe

netstat komutu kullanımı

netstat (network statistics) ağ bağlantıları (hem gelen hem giden), yönlendirme tabloları ve ağ arayüzü istatistiklerini görüntüleyen bir komut satırı aracıdır. netstat komutu UNIX, Linux ve Windows NT tabanlı işletim sistemlerinde kullanılabilir.
Parametreler ve anlamları
-a : Tüm TCP ve UDP bağlantıları ekrana basar.
-e : Gelen ve giden paket sayısının istatistiklerini görüntüler.
-n : Tüm bağlantıları rakamsal olarak görüntüler.
-o : Tüm bağlantıları PID numarası ve uygulama adına göre listeler.
-p : Bağlantıların kullandığı uygulama ve PID numaralarını ekrana basar.
-s : Kurallara göre istatistiksel verileri ekrana basar.
-r : IP yönlendirme tablosunun içeriğini görüntüler.

Netstat çıktısında yer alan bağlantı durumlarının anlamları

ESTABLISHED : Soket bağlantı gerçekleşmiş durumdadır.
SYN_SENT : Soket bağlantı kurmaya çalışıyordur.
SYN_RECV : Ağdan bir bağlantı isteği gelmiştir.
FIN_WAIT1 : Soket kapatılmış, bağlantı sonlandırılmak üzeredir.
FIN_WAIT2 : Bağlantı sonlandırılmıştır.Soket karşı ucun bağlantıyı sonlandırmasını beklemektedir.
TIME_WAIT : Soket kapandıktan sonra gelebilecek paketleri alabilmek için beklemektedir. CLOSED : Soket kullanılmamaktadır.
CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır.Soketin kapanması beklenmektedir.
LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır.Onay beklenmektedir.
LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır.
CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadır.Tüm veriler gönderilmeden soketler kapanmaz.
Örnekler;
Tüm TCP ve UDP Bağlantıları Listeler;
netstat -ntu
Tüm TCP ve UDP bağlantılar içerisinde SYN_SENT ve SYN_RECV bağlantı durumlarını ekrana basar. Grep sonrasında yer alan bölümü kendi isteğinize göre değiştirip diğer bağlantıları da ekranda görebilirsiniz.
netstat -ntu | grep SYN
netstat -ntu | grep ESTABLISHED
Aşağıdaki komut ffff tablosu ile ekrana basılan değerler dahil tüm ip listesini küçükten büyüğe göre sıralar.Yine komuta grep ekleyerek bağlantı duruma göre listeleme yapabilirsiniz.
netstat -ntu | awk ‘ {print $5} ‘ | awk ‘ {sub(“::ffff:”,””);print} ‘ | cut -f1 -d ‘:’ | sort | uniq -c | sort -n | grep -v -e server -e Address 127.0.0.1 -e 0.0.0.0
Yalnızca TCP veya UDP protokollerinin istatistikleri
netstat -sp tcp
netstat -sp udp
Aktif TCP bağlantılarını ve her 5 saniyede bir olan işlem kimliklerini göstermek için
netstat -o 5
Aktif TCP bağlantılarını ve işlem kimliklerini sayısal (numerical) formda göstermek için
netstat -no
pid kimlikli bir işlem tarafından açılan tüm portları
netstat -ao | grep "pid"
Linux sistemlerde netstat komutu ile açık portlar ve bu portları kullanan servisler bulunabilir. Bu duruma ilişkin örnek bir kullanım
netstat -nlptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
1. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 4927/mysqld
2. tcp 0 0 0.0.0.0:1241 0.0.0.0:* LISTEN 17797/nessusd
3. udp 0 0 0.0.0.0:161 0.0.0.0:* 2196/snmpd
Netstat komutunun bu kullanımına ilişkin parametrelerin ne anlama geldikleri ise yine aşağıda gösterilmiştir.
-l, –listening = Sistem üzerinde dinlenen soket bilgileri gösterilir.
-p, –programs = Soket bilgileri için süreç numarası ve program ismi gösterilir.
-t,-u = -t ile tcp, -u ile de udp protokolüne ait port bilgileri gösterilir.
-n, –numeric = Gösterilecek ip adres bilgileri için isim çözünürlüğü gerçekleştirilmez.
Komutun örnek kullanımında gösterilen ekran çıktısında yer alan satır numaraları, komutun yorumlanması için kullanılmış olup gerçek kullanımında böyle bir durum söz konusu olmayacaktır. Aşağıda komut çıktısına dair ilgili açıklamalar bulunmaktadır. Her satır numarası komut çıktısında gösterilen numaraya göre yorumlanmalıdır.
1. Mysqld servisi 4927 süreç numarası, 127.0.0.1 ip adresi üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.
2. Nessusd servisi 17797 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.
3. Snmpd servisi 2196 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 161 port numarası ve udp protokolü ile hizmet vermektedir.
İlgili servisin çalışma paremetresine dair ayrıntılı bilgi edinmek için ps komutu kullanılabilir. Bunun için “ps -p servis_süreç_numarası -f” şeklinde kullanılmalıdır.
ps -p 4927 -f
UID PID PPID C STIME TTY TIME CMD
mysql 4927 1 0 2009 ? 11:19:00 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid
ÖZET;
Tüm NetStat Komutları
netstat -n: Adresleri ve Bağlantı Noktalarının Numaralarını Sayısal Biçimde Gösterir
netstat -an: Dosya Alırken Karşıdakinin IP adresini Gösterir.(Bu Da Çok İyi Bir Yöntemdir Ama Amacımız IP Bulmak Değil Bu Konuda Tabi)
netstat -a: Tüm Bağlantıları ve Dinleme Bağlantı Noktalarını Gösterir.
netstat -b: Her Bağlantı veya Dinleme Bağlantı Noktası İle İlişkili Çalıştırılabilir Dosyayı Gösterir.
netstat -e: Ethernet İstatistiklerini Gösterir.
netstat -o: Her Bağlantıyla İlişkili Sahip İşlem Kimliğini Gösterir.
netstat -p: İletişim Kuralının Bağlantılarını Gösterir.
netstat -r: Yönlendirme Tablosunu Gösterir.
netstat -s: her İletişim Kuralları İçin İstatistikleri Gösterir.
netstat -v: En Önemli Netstat Komutu Olan -v, -b İle Birlikte Kullanılırsa Tüm Çalışan Dosyalar İçin Bağlantı ve Bağlantı Noktası Oluşumu İle İlgili Bileşenlerin Sırasını Gösterir.

netstat -a | more ==>tüm portların (Tcp/Udp) olmak üzere dinlenebilmesi;
netstat -at ==>  TCP(Transmission Conrol Protocol) bağlantılarının dinelenebilmesi
netstat -au ==> UDP( User Datagram Protocol) portlarının dinlenebilmesi için
netstat -l | moreBütün aktif portların dinlenebilmesi için
netstat -lu | more ==> Bütün aktif (alive) yani bağlantı sağlayan Udp  portlarının dinlenebilmesi için
netstat -lx ==>Aktif Unix portlarının dinlenebilmesi için
netstat -s ==>Tcp, Udp, Icmp, Ip protocol'lerinin tüm istatistikleri hakkında bilgi almak istiyorsak
netstat -tp ==> Process İd numarası ile birlikte götürülen hizmetleri görüntüleyebilmek için




2 yorum :