Linux netstat
command size ağ bağlantılarınız, kullanılan bağlantı noktaları ve bunları kullanan işlemler hakkında bilgi hazinesi sunar. Nasıl kullanacağınızı öğrenin.
Bağlantı Noktaları, İşlemler ve Protokoller
Ağ soketleri bağlanabilir veya bağlantı beklenebilir. Bağlantılar Aktarım Kontrol Protokolü (TCP) veya Kullanıcı Datagram Protokolü UDP gibi ağ protokollerini kullanır. Bağlantı kurmak için Internet Protokolü adreslerini ve ağ bağlantı noktalarını kullanırlar.
Kelime prizler bir lead veya kablo için fiziksel bir bağlantı noktasının görüntülerini oluşturabilir, ancak bu bağlamda soket, bir ağ veri bağlantısının bir ucunu işlemek için kullanılan bir yazılım yapısıdır.
Soketlerin iki ana durumu vardır: bağlı ve devam eden bir ağ iletişimini kolaylaştırmak veya bekleme gelen bir bağlantının kendilerine bağlanması için. Bir soketin uzak bir cihazda bağlantı kurarak ortasında olduğu, ancak geçici durumları bir kenara bıraktığı durum gibi başka durumlar da vardır, bir soketi bağlı veya bekleyen (genellikle denir) dinleme).
Dinleme soketine sunucuve dinleme soketi ile bağlantı isteyen sokete bir müşteri. Bu adların donanım veya bilgisayar rolleriyle ilgisi yoktur. Bağlantının her bir ucundaki her soketin rolünü tanımlarlar.
netstat
komutu hangi soketlerin bağlı olduğunu ve hangi soketlerin dinlendiğini keşfetmenizi sağlar. Yani, hangi portların kullanımda olduğunu ve bunları hangi işlemlerin kullandığını gösterir. Ağ arayüzleriniz ve çok noktaya yayın bağlantılarınızla ilgili yönlendirme tablolarını ve istatistikleri gösterebilir.
İşlevselliği netstat
ip ve ss gibi farklı Linux yardımcı programlarında zaman içinde çoğaltılmıştır. Tüm ağ analizi komutlarının bu büyükbabasını hala bilmeye değer, çünkü tüm Linux ve Unix benzeri işletim sistemlerinde ve hatta Windows ve Mac'te kullanılabilir.
Örnek komutlarla birlikte nasıl kullanılacağı aşağıda açıklanmıştır.
Tüm Soketlerin Listelenmesi
-a
(tümü) seçeneği yapar netstat
bağlı ve bekleyen tüm soketleri göster. Bu komut uzun bir liste oluşturmakla yükümlüdür, bu yüzden less
.
netstat -a | less
Listede TCP (IP), TCP6 (IPv6) ve UDP yuvaları bulunur.
Terminal penceresindeki sarma, neler olup bittiğini görmeyi biraz zorlaştırır. İşte bu listeden birkaç bölüm:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp6 0 0 (::):ssh (::):* LISTEN tcp6 0 0 ip6-localhost:ipp (::):* LISTEN . . . Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 24 ( ) DGRAM 12831 /run/systemd/journal/dev-log unix 2 ( ACC ) STREAM LISTENING 24747 @/tmp/dbus-zH6clYmvw8 unix 2 ( ) DGRAM 26372 /run/user/1000/systemd/notify unix 2 ( ) DGRAM 23382 /run/user/121/systemd/notify unix 2 ( ACC ) SEQPACKET LISTENING 12839 /run/udev/control
“Aktif İnternet” bölümünde, uzaktan bağlantı taleplerini dinleyen bağlı harici bağlantılar ve yerel soketler listelenir. Yani, harici cihazlara kurulan (veya kurulacak) ağ bağlantılarını listeler.
“UNIX etki alanı” bölümünde bağlı ve dinlenen dahili bağlantılar listelenir. Başka bir deyişle, bilgisayarınızda farklı uygulamalar, işlemler ve işletim sisteminin öğeleri arasında kurulan bağlantıları listeler.
“Aktif İnternet” sütunları şunlardır:
- Proto: Bu soket tarafından kullanılan protokol (örneğin, TCP veya UDP).
- , Alınan-S: Alma kuyruğu. Bunlar, alınan ve arabelleğe alınan gelen baytlardır, bu bağlantıyı kullanan yerel işlemin bunları okumak ve tüketmek için bekler.
- Send-Q: Gönderme kuyruğu. Bu, gönderme kuyruğundan gönderilmeye hazır baytları gösterir.
-
Yerel adres: Bağlantının yerel ucunun adres ayrıntıları. Varsayılan değer şudur:
netstat
adresin yerel ana bilgisayar adını ve bağlantı noktası hizmetinin adını gösterir. - Yabancı adres: Bağlantının uzak ucunun adresi ve bağlantı noktası numarası.
- Durum: Yerel soketin durumu. UDP soketleri için bu genellikle boştur. Bkz. durum aşağıdaki tablo.
TCP bağlantıları için, durum değer aşağıdakilerden biri olabilir:
- DİNLE: Yalnızca sunucu tarafı. Soket bir bağlantı isteği bekliyor.
- SYN-GÖNDERİLDİ: Yalnızca istemci tarafında. Bu soket bir bağlantı isteği yaptı ve kabul edilip edilmeyeceğini görmek için bekliyor.
- SYN-ALINDI: Yalnızca sunucu tarafı. Bu soket, bir bağlantı isteğini kabul ettikten sonra bir bağlantı onayı bekliyor.
- KURULUŞ: Sunucu ve istemciler. Sunucu ile istemci arasında, ikisi arasında veri aktarımına izin veren, çalışan bir bağlantı kuruldu.
- -BEKLE-1: Sunucu ve istemciler. Bu soket, uzak soketten bağlantı sonlandırma isteği veya daha önce bu soketten gönderilen bir bağlantı sonlandırma isteğinin onaylanmasını bekliyor.
- -BEKLE-2: Sunucu ve istemciler. Bu soket, uzak soketten bağlantı sonlandırma isteği bekliyor.
- YAKIN BEKLEYİŞ: Sunucu ve istemci. Bu soket yerel kullanıcıdan bir bağlantı sonlandırma isteği bekliyor.
- KAPANIŞ: Sunucu ve istemciler. Bu soket, uzak soketten bir bağlantı sonlandırma isteği onayı bekliyor.
- SON-ACK: Sunucu ve istemci. Bu soket, uzak sokete gönderdiği bağlantı sonlandırma isteğinin onaylanmasını bekliyor.
- ZAMAN-BEKLE: Sunucu ve istemciler. Bu soket, uzak sokete, uzak soketin sonlandırma isteğini aldığını bildirmek için bir bildirim gönderdi. Şimdi onayın alındığından emin olmak için bekliyor.
- KAPALI: Bağlantı yok, bu nedenle soket sonlandırıldı.
“Unix alanı” sütunları şunlardır:
- Proto: Bu soket tarafından kullanılan protokol. “Unix” olacak.
- RefCnt: Referans sayısı. Bu sokete bağlı ekli işlemlerin sayısı.
-
Bayraklar: Bu genellikle
ACC
temsil edenSO_ACCEPTON
, soketin bir bağlantı isteği beklediği anlamına gelir.SO_WAITDATA
, olarak gösterilirW
, okunmayı bekleyen veriler olduğu anlamına gelir.SO_NOSPACE
, olarak gösterilirN
, sokete veri yazmak için yer olmadığı anlamına gelir (yani, gönderme arabelleği dolu). - Tür: Soket tipi. Bkz. tip aşağıdaki tablo.
- Durum: Soketin durumu. Bkz. durum aşağıdaki tablo.
- Dosya numarası: Bu soketle ilişkili dosya sistemi inode.
- yol: Sokete giden dosya sistemi yolu.
Unix etki alanı soketi tip aşağıdakilerden biri olabilir:
- dgram: Soket, sabit uzunluktaki mesajlar kullanılarak datagram modunda kullanılmaktadır. Datagramların ne güvenilir, sıralı ne de kopyalanmamış olduğu garanti edilmez.
- AKIŞ: Bu soket bir akış soketidir. Bu, genel “normal” tipte bir soket bağlantısıdır. Bu soketler, paketlerin güvenilir sıralı (sırayla) teslimatını sağlamak üzere tasarlanmıştır.
- ÇİĞ: Bu soket ham soket olarak kullanılıyor. Ham soketler OSI Modelinin ağ düzeyinde çalışır ve taşıma düzeyindeki TCP ve UDP başlıklarına başvurmaz.
- RDM: Bu soket, güvenilir bir şekilde iletilen mesajlar bağlantısının bir ucunda bulunur.
- SEQPACKET: Bu soket, güvenilir, sıralı ve çoğaltılmamış paket dağıtımı sağlamanın başka bir yolu olan sıralı bir paket soketi olarak çalışır.
- PAKET: Ham arabirim erişim soketi. Paket soketleri, OSI modelinin aygıt sürücüsü (yani, veri bağlantı katmanı) düzeyinde ham paketleri almak veya göndermek için kullanılır.
Unix etki alanı soketi durum aşağıdakilerden biri olabilir:
- BEDAVA: Bu soket ayrılmamış.
- DİNLEME: Bu soket gelen bağlantı isteklerini dinliyor.
- BAĞLANIYOR: Bu soket bağlantı sürecinde.
- BAĞLI: Bir bağlantı kuruldu ve soket veri alıp iletebiliyor.
- KESME: Bağlantı sona erdirilme sürecinde.
Vay canına, bu çok fazla bilgi! Birçok netstat
seçenekler sonuçları bir şekilde hassaslaştırır, ancak içeriği çok fazla değiştirmezler. Hadi bir bakalım.
Türlerine Göre İlan Soketleri
netstat -a
command görmeniz gerekenden daha fazla bilgi sağlayabilir. Sadece TCP soketlerini görmek veya görmek istiyorsanız, -t
(TCP) seçeneği ile ekranı yalnızca TCP soketlerini gösterecek şekilde kısıtlayın.
netstat -at | less
Ekran çıkışı büyük ölçüde azalır. Listelenen birkaç soketin tümü TCP soketleridir.
-u
(UDP) ve -x
(UNIX) seçenekleri benzer şekilde davranır ve sonuçları komut satırında belirtilen soket türüyle sınırlar. Kullanılan -u (UDP) seçeneği şöyledir:
netstat -au | less
Yalnızca UDP yuvaları listelenir.
Listeye Göre Soketler
Dinleme veya bekleme durumunda olan soketleri görmek için, -l
(dinleme) seçeneği.
netstat -l | less
Listelenen soketler dinleme durumunda olan soketlerdir.
Bu, ilgili soketlerde daha fazla yer almak için -t (TCP, -u (UDP) ve -x (UNIX) seçenekleriyle birleştirilebilir. TCP yuvalarını dinlemeye bakalım:
netstat -lt | less
Şimdi sadece TCP dinleme soketleri görüyoruz.
Protokol ile Ağ İstatistikleri
Bir protokolün istatistiklerini görmek için -s
(istatistik) seçeneğini seçin ve -t
(TCP), -u
(UDP) veya -x
(UNIX) seçenekleri. Eğer sadece -s
(istatistik) seçeneğini seçerseniz, tüm protokollere ilişkin istatistikleri görürsünüz. TCP protokolünün istatistiklerini kontrol edelim.
netstat -st | less
TCP bağlantıları için bir istatistik koleksiyonu less
.
İşlem Adlarını ve PID'leri Gösterme
Bir soket kullanarak sürecin süreç kimliğini (PID), o sürecin adıyla birlikte görmek yararlı olabilir. -p
(program) seçeneği tam da bunu yapar. Dinleme durumunda olan bir TCP soketi kullanan işlemler için PID'lerin ve işlem adlarının ne olduğunu görelim. Kullanırız sudo
normalde kök izinleri gerektiren bilgiler de dahil olmak üzere, mevcut tüm bilgileri aldığımızdan emin olmak için.
sudo netstat -p -at
Biçimlendirilmiş bir tablodaki çıktı şöyledir:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 6927/systemd-resolv tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 751/sshd tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 7687/cupsd tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1176/master tcp6 0 0 (::):ssh (::):* LISTEN 751/sshd tcp6 0 0 ip6-localhost:ipp (::):* LISTEN 7687/cupsd tcp6 0 0 ip6-localhost:smtp (::):* LISTEN 1176/master
“PID / program adı” adında fazladan bir sütun var. Bu sütun, soketlerin her birini kullanarak işlemin PID'sini ve adını listeler.
Sayısal Adresleri Listeleme
Bazı belirsizlikleri kaldırmak için atabileceğimiz bir diğer adım, yerel ve uzak adresleri, çözümlenmiş alan adları ve ana bilgisayar adları yerine IP adresleri olarak göstermektir. Eğer kullanırsak -n
(sayısal) seçeneğinde IPv4 adresleri noktalı ondalık biçimde gösterilir:
sudo netstat -an | less
IP adresleri sayısal değerler olarak gösterilir. Bağlantı noktası numaraları da iki nokta üst üste işareti ile gösterilir ” :
IP Adresinden.
127.0.0.1'lik bir IP adresi, soketin yerel bilgisayarın geri döngü adresine bağlı olduğunu gösterir. 0.0.0.0 IP adresini yerel adresler için “varsayılan yol” ve yabancı adresler için “herhangi bir IP adresi” olarak düşünebilirsiniz. IPv6 adresleri “::
”De sıfır adrestir.
Listelenen bağlantı noktaları, normal amaçlarının ne olduğunu görmek için kolayca kontrol edilebilir:
- 22: Bu, Güvenli Kabuk (SSH) dinleme bağlantı noktasıdır.
- 25: Bu, Basit Posta Aktarım Protokolü (SMTP) dinleme bağlantı noktasıdır.
- 53: Bu, Alan Adı Sistemi (DNS) dinleme bağlantı noktasıdır.
- 68: Bu, Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP) dinleme bağlantı noktasıdır.
- 631: Bu Ortak UNIX Baskı Sistemi (CUPS) dinleme bağlantı noktasıdır.
İLİŞKİLİ: 127.0.0.1 ve 0.0.0.0 Arasındaki Fark Nedir?
Yönlendirme Tablosunu Görüntüleme
-r
(route) seçeneği çekirdek yönlendirme tablosunu görüntüler.
sudo netstat -r
İşte düzgün bir tablodaki çıktı:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default Vigor.router 0.0.0.0 UG 0 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
Ve sütunların anlamı şudur:
- Hedef: Hedef ağ veya hedef ana bilgisayar cihazı (hedef bir ağ değilse).
-
Ağ geçidi: Ağ geçidi adresi. Yıldız işareti “
*
“Ağ geçidi adresi ayarlanmadıysa burada” görünür. - Genmask: Rotanın alt ağ maskesi.
- Bayraklar: Bkz. bayraklar aşağıdaki tablo.
- MSS: Bu rota üzerindeki TCP bağlantıları için Varsayılan Maksimum Segment Boyutu — bu, bir TCP segmentinde alınabilecek en büyük veri miktarıdır.
- Pencere: Bu bağlantı üzerinden TCP bağlantıları için, varsayılan arabellek dolmadan aktarılabilecek ve alınabilecek paket sayısını gösteren varsayılan pencere boyutu. Pratikte, paketler alıcı uygulama tarafından tüketilir.
- irtt: İlk Gidiş Saati. Bu değere, yavaş yanıt vermeyen uzak bağlantılar için TCP parametrelerinde dinamik ayarlamalar yapmak üzere çekirdek tarafından başvurulur.
- Arayüz: Bu yol üzerinden gönderilen paketlerin iletildiği ağ arabirimi.
bayraklar değer şunlardan biri olabilir:
- U: Rota kalktı.
- H: Hedef bir ana bilgisayardır ve bu rotada mümkün olan tek hedeftir.
- G: Ağ geçidini kullanın.
- R: Dinamik yönlendirme için rotayı eski durumuna getirin.
- D: Yönlendirme arka plan programı tarafından dinamik olarak yüklenir.
- M: Bir Internet Denetim İletisi Protokolü (ICMP) paketi alındığında, yönlendirme arka plan programı tarafından değiştirildi.
-
A: Yükleyen
addrconf
, otomatik DNS ve DHCP yapılandırma dosyası oluşturucu. - C: Önbellek girişi.
- !: Rotayı reddet.
Bir Süreç Tarafından Kullanılan Bağlantı Noktasını Bulma
Çıkışı borsa yaparsak netstat
vasıtasıyla grep
, bir işlemi ada göre arayabilir ve kullandığı bağlantı noktasını belirleyebiliriz. Kullanırız -a
(herşey), -n
(sayısal) ve -p
(program) seçeneklerini kullanın ve “sshd” yi arayın.
sudo netstat -anp | grep "sshd"
grep
hedef dizeyi bulur ve sshd
Daemon 22 numaralı bağlantı noktasını kullanıyor.
Tabii ki, bunu tersine de yapabiliriz. “: 22” yi ararsak, eğer varsa, o portu hangi işlemin kullandığını bulabiliriz.
sudo netstat -anp | grep ":22"
Bu zaman grep
“: 22” hedef dizesini bulur ve bu bağlantı noktasını kullanan işlemin sshd
arka plan programı, işlem kimliği 751.
Ağ Arayüzlerini Listeleme
-i
(arayüzler) seçeneği ağ arayüzlerinin bir tablosunu netstat
keşfedebilirsiniz.
sudo netstat -i
İşte çıktı daha okunaklı bir şekilde:
Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU lo 65536 30175 0 0 0 30175 0 0 0 LRU
Sütunlar şu anlama gelir:
-
Arayüz: Arayüzün adı.
enp0s3
arayüz ağ arayüzüdür dışarıda dünya velo
arabirim geri döngü arabirimidir. Geri döngü arabirimi, işlemlerin iletişim kurmasını sağlar içinde bilgisayar bir ağa bağlı olmasa bile, ağ protokollerini kullanarak bilgisayarı. - MTU: Maksimum İletim Birimi (MTU). Bu gönderilebilecek en büyük “paket” tir. Yönlendirme ve protokol bayraklarını ve diğer meta verileri içeren bir başlıktan ve gerçekte aktarılan verilerden oluşur.
- RX-OK: Hatasız alınan paket sayısı.
- RX-ERR: Hatalı alınan paket sayısı. Bunun mümkün olduğunca düşük olmasını istiyoruz.
- RX-DRP: Düşen paketlerin sayısı (yani kayıp). Bunun mümkün olduğunca düşük olmasını da istiyoruz.
- RX-OVR: Alma sırasında taşmalar nedeniyle kaybedilen paket sayısı. Bu genellikle alıcı tamponun dolu olduğu ve daha fazla veri kabul edemediği, ancak daha fazla verinin alındığı ve atılması gerektiği anlamına gelir. Bu rakam ne kadar düşükse, o kadar iyi ve sıfır mükemmeldir.
- TX-OK: İletilen paket sayısı, hatasız.
- RX-ERR: Hatalı gönderilen paket sayısı. Bunun sıfır olmasını istiyoruz.
- RX-DRP: İletim sırasında bırakılan paket sayısı. İdeal olarak, bu sıfır olmalıdır.
- RX-OVR: Aktarım sırasında taşmalar nedeniyle kaybedilen paket sayısı. Bu genellikle gönderme arabelleğinin dolu olduğu ve daha fazla veri kabul edemediği anlamına gelir, ancak daha fazla veri iletilmeye hazırdı ve atılması gerekti.
- Flg: Bayraklar. Bkz. bayraklar aşağıdaki tablo.
bayraklar aşağıdakileri temsil eder:
- B: Bir yayın adresi kullanılıyor.
- L: Bu arayüz geri döngü cihazıdır.
- M: Tüm paketler alınıyor (örn. Karışık modda). Hiçbir şey filtrelenmez veya atılmaz.
- Ö: Bu arabirim için Adres Çözümleme Protokolü (ARP) kapalı.
- P: Bu bir Noktadan Noktaya (PPP) bağlantıdır.
- R: Arayüz çalışıyor.
- U: Arayüz bitti.
Çok Noktaya Yayın Grubu Üyeliklerini Listele
Basitçe söylemek gerekirse, çok noktaya yayın iletimi, alıcı sayısına bakılmaksızın bir paketin yalnızca bir kez gönderilmesini sağlar. Örneğin, video akışı gibi hizmetler için bu, gönderenin bakış açısından verimliliği büyük oranda artırır.
-g
(gruplar) seçeneği yapar netstat
Her arabirimdeki soketlerin çok noktaya yayın grubu üyeliğini listeler.
sudo netstat -g
Sütunlar oldukça basittir:
- Arayüz: Soketin üzerinden iletim yaptığı arabirimin adı.
- RefCnt: Sokete bağlı işlemlerin sayısı olan referans sayısı.
- Grup: Çok noktaya yayın grubunun adı veya tanımlayıcısı.
Bloktaki Yeni Çocuklar
Route, ip, ifconfig ve ss komutları, netstat
size gösterme yeteneğine sahiptir. Hepsi harika komutlar ve kontrol etmeye değer.
Odaklandık netstat
çünkü hangi Unix benzeri işletim sistemi üzerinde çalıştığınıza bakılmaksızın, belirsiz olanları bile evrensel olarak kullanılabilir.