Linux’ta netstat vs ss kullanım kılavuzu

Örnekler kullanarak netstat ve ss komutlarının kullanımını size öğretmeye çalışan Linux’ta netstat vs ss kullanım kılavuzuna hoş geldiniz.  Bu kılavuza ss ve netstat komutlarının ne olduğunu, ne için kullanıldığını tanımlayarak başlayacağız ve örnekler kullanarak bunların ağ analizi ve sorun giderme için nasıl kullanıldığını göstereceğiz.

Netstat nedir?

Netstat, TCP/UDP için ağ bağlantılarını, ağ protokolü istatistiklerini, arayüz istatistiklerini, yönlendirme tablolarını, maskeli bağlantıları, çok noktaya yayın üyeliklerini vb. görüntülemek için kullanılan bir komut satırı ağ yardımcı programıdır. netstat programı artık eskidir ve onun yerine ss geçmektedir.  Bazı netstat komutlarının yerini ss komutları almıştır, örneğin:

$ netstat -r   replaced by   $ ip route
$ netstat -i   replaced by   $ ip -s lin
$ netstat -g   replaced by   $ ip maddr.

SS nedir?

ss, Linux ve Unix sistemlerindeki yuvaları araştırmak için kullanılan bir yardımcı programdır.  Netstat’a benzer bilgileri gösterir ve soket istatistiklerini dökümleyebilir.  ss komutu diğer araçlarla karşılaştırıldığında TCP ve durum bilgisinden daha fazlasını görüntüleyebilir.  Varsayılan olarak ss, bağlantı kuran açık dinlemeyen yuvaların (örn. TCP/UNIX/UDP) bir listesini görüntüler.

örneklerle Linux’ta netstat vs ss kullanım kılavuzu:

Bu bölümde Linux ve Unix sistemlerinde kullanılan ss ve netstat komut satırı araçlarının örneklerine bakacağız.  En yeni dağıtımların tümünde bu komutlar hazır olmalıdır ve komutları terminalde yazarak bunları çağırabilirsiniz.  Dağıtımınız herhangi bir araçla birlikte gönderilmiyorsa, bunların nasıl kurulacağına ilişkin belgelerine bakın.

Netstat komutunun komut satırı kullanımı aşağıdadır.  Daha sonra ss komut kullanımına bakabilir ve bir karşılaştırma yapabilirsiniz, ardından hangi aracın sizin için en uygun olduğuna karar vereceksiniz.  Netstat’ın kullanımdan kaldırılmasının ardından yakında kullanımdan kaldırılacağını unutmayın; bu nedenle ss komutunu kullanmayı öğrenmeniz tavsiye edilir.

netstat kullanımı:

Netstat komutuyla kullanılan ortak komut satırı seçenekleri şunlardır:

-l, –listening dinleme sunucusu yuvalarını görüntüler
-a, –all tüm soketleri gösterir (varsayılan: bağlı)
-r, –route yönlendirme tablosunu görüntüler
i, –interfaces ekran arayüzü tablosu
-g, –groups çok noktaya yayın grubu üyeliklerini görüntüler
-s, –statistics ağ istatistiklerini görüntüler (SNMP gibi)
-M, –masquerade maskelenmiş bağlantıları gösterir
-v, –verbose ayrıntılı döküm
-W, –wide IP adreslerini kesme
-n, –numeric isimleri çözme
-e, –extend diğer/daha fazla bilgiyi görüntüle
-p, –programs Soketler için PID/Program adını görüntüle
-o, –timers zamanlayıcıları göster
-F, –fib İletim Bilgi Tabanını görüntüle (varsayılan)
-C, –cache FIB yerine yönlendirme önbelleğini görüntüle

Kullanım Örnekleri;

Tüm soketleri görüntüle (varsayılan: bağlı)

Sisteminizdeki farklı protokollerdeki tüm etkin bağlantıların bir listesini almak için şunu çalıştırın:

$ netstat -a

Tüm UDP bağlantı noktalarını listeleyin:

$ netstat -au

Tüm TCP bağlantı noktalarını listeleyin:

$ netstat -at

Tüm dinleme bağlantı noktalarını listeleyin:

$ netstat -l

Dinleyen tüm TCP bağlantı noktalarını listeleyin:

$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State 
tcp 0 0 0.0.0.0:nfs 0.0.0.0:* LISTEN 
tcp 0 0 localhost.localdo:18083 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:37959 0.0.0.0:* LISTEN 
tcp 0 0 localhost.locald:mshvlm 0.0.0.0:* LISTEN 

Tüm dinleme udp bağlantı noktalarını listeleyin:

To list listening udp ports, use the option -lu

$ netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State 
udp 0 0 0.0.0.0:52179 0.0.0.0:* 
udp 0 0 0.0.0.0:mountd 0.0.0.0:* 
udp 0 0 dev.jmtai.com:bootpc 0.0.0.0:* 
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:* 
 ....

Çekirdek yönlendirme tablosunu görüntüleyin

-r seçeneği çekirdek yönlendirme tablosunu görüntülemek için kullanılır.

$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 tun0
default _gateway 0.0.0.0 UG 0 0 0 wlp1s0
10.10.46.0 _gateway 255.255.255.0 UG 0 0 0 tun0
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0

Belirli bir bağlantı noktasında hangi işlemin dinlediğini görün:

Biçim: netstat -pln |  grep <bağlantı noktası> |  awk ‘{$NF’yi yazdır}’.  22 numaralı bağlantı noktasını hangi işlemin dinlediğini görmek için bir örnek olarak:

$ sudo netstat -pln | grep 22 | awk '{print $NF}'
7885/sshd

Bunu onaylamak için ps komutundan kontrol edin.

$ ps aux | grep 7885
root 7885 0.0 0.0 40692 5452 ? Ss 18:54 0:00 /usr/bin/sshd -D

Yalnızca IPv4 dinleme bağlantı noktalarını (TCP ve UDP) görüntüleyyin

Netstat varsayılan olarak size hem IPv4 hem de IPv6 dinleme bağlantı noktası listesinin bir listesini verir.  Yalnızca IPv4’ün bir listesini almak için şunu kullanın:

$ sudo netstat -vutlnp --listening -4
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7885/sshd 
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - 
tcp 0 0 127.0.0.1:18083 0.0.0.0:* LISTEN 429/vboxwebsrv 
tcp 0 0 0.0.0.0:37959 0.0.0.0:* LISTEN - 
tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 678/mpd 
tcp 0 0 0.0.0.0:49743 0.0.0.0:* LISTEN 422/rpc.statd 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init 
...

Tüm arayüzlerin ağ statiğini görüntüleyin

Arayüz istatistikleri -s komut seçeneği kullanılarak görüntülenebilir.

sudo netstat -s

Tcp istatistiklerini görüntülemek için -st kullanın, udp için -su kullanın

Hem IPv4 hem de IPv6 için çok noktaya yayın grubu üyeliğini görüntüleyin

Çoklu yayın, veri iletiminin aynı anda bir grup hedef bilgisayara yönlendirildiği grup iletişimidir.  Çok noktaya yayın grubu üyeliği almak için -g seçeneğini kullanın

sudo netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
wlp1s0 1 224.0.0.251
wlp1s0 1 all-systems.mcast.net
tun0 1 224.0.0.251
tun0 1 all-systems.mcast.net
lo 1 ff02::1
lo 1 ff01::1
wlp1s0 1 ff02::fb
wlp1s0 1 ff02::1:ff48:91f8
wlp1s0 1 ff02::1
wlp1s0 1 ff01::1
tun0 1 ff02::fb
tun0 1 ff02::1
tun0 1 ff01::1

Dinleyen tüm UNIX bağlantı noktalarını listeleyin

$ sudo netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 21766 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 276493 /run/user/1000/pulse/cli
unix 2 [ ACC ] STREAM LISTENING 21789 /run/user/1000/i3/ipc-socket.644
unix 2 [ ACC ] STREAM LISTENING 49182 /tmp/qtsingleapp-HipCha-9b70-3e8
unix 2 [ ACC ] STREAM LISTENING 21765 @/tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 18468 /run/gssproxy.sock
unix 2 [ ACC ] STREAM LISTENING 2609 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 2620 /run/rpcbind.sock
...

Çalışan bir işlem tarafından kullanılan bağlantı noktasını bulun

$ sudo netstat -ap | grep ssh
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 7885/sshd 
tcp6 0 0 [::]:ssh [::]:* LISTEN 7885/sshd

IP adresi için mümkün olan yerlerde Etki alanı adlarını görüntüleyin:

netstat -ltF

Bu komut, dinleyen TCP bağlantı noktalarını listeler ancak çıktıda alan adlarını gösterir.

Sürekli modda ekran çıkışı

Çıkışın her beş saniyede bir yenilenerek sürekli olarak görüntülenmesi için –c seçeneğini kullanın.

netstat -ac 5

Yaptığımız işi seviyorsanız, aşağıdaki bağlantıdan bu eğitimi pdf olarak indirerek bizi destekleyin:

ss kullanımı:

Bu bölümde örneklerle ss komut kullanımı ele alınmaktadır.  Komutlar favorilerinizden bazılarını kaçırabilir, bu nedenle herhangi bir ekleme için yorum bırakmaktan çekinmeyin.  ss komutu tüm verilerini çekirdek ad alanından alır, dolayısıyla netstat’a kıyasla daha fazla veri alabilir.

 Ss komutuyla kullanılan yaygın seçenekler şunlardır:

n, –numeric hizmet adlarını çözme
-r, –resolve : ana bilgisayar adlarını çözümleyin.
-l, –listening dinleme soketlerini göster
-o, –options zamanlayıcı bilgilerini göster
-e, –extended ayrıntılı soket bilgilerini göster
-m, –memory soket belleği kullanımını göster
-p, –processes soket kullanarak işlemi göster
s, –summary soket kullanım özetini göster
-N, –net belirtilen ağ ad alanı adına geçiş yapın
-4, –ipv4 yalnızca IP sürüm 4 yuvalarını görüntüle
-6, –ipv6 yalnızca IP sürüm 6 yuvalarını görüntüle
0, –packet PAKET soketlerini göster
-t, –tcp yalnızca TCP yuvalarını görüntüler
-S, –sctp yalnızca SCTP yuvalarını görüntüler
-u, –udp yalnızca UDP yuvalarını görüntüler
-w, –raw yalnızca RAW yuvalarını görüntüler
-x, –unix yalnızca Unix etki alanı yuvalarını görüntüler
-f, –family=FAMILY Gruba ait soketlri görüntüler

Örnekler;

Tüm bağlantıları listele

Tüm bağlantıları listelemek için herhangi bir seçenek iletilmeden ss komutunu çalıştırmanız yeterlidir.

# ss

İlgili süreç de dahil olmak üzere tüm listelenmiş tcp soketlerini gösterir

Kullanılan seçenek, daha önce gösterilen seçenekler listesinde açıklandığı gibi -lt’dir.

# ss -tlp

443 numaralı bağlantı noktasında 192.168.1.10’a bağlanan tüm yuvaları gösterir

# ss -t dst 192.168.1.10:443

Ssh ile ilgili tüm bağlantıları göster

ss -t state established '( dport = :ssh or sport = :ssh )'
Recv-Q Send-Q Local Address:Port Peer Address:Port 
0 0 192.168.0.16:60334 192.168.20.3:ssh

List tcp and udp ports with no hostname resolution

# ss -tun
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port 
tcp ESTAB 0 0 192.168.0.16:41464 216.58.223.74:443 
tcp ESTAB 0 0 192.168.0.16:57354 5.160.200.106:80 
tcp ESTAB 0 0 192.168.0.16:60334 88.198.68.148:22 
....

Print process which owns the connection

# ss -ltp
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=7885,fd=3))
LISTEN 0 64 0.0.0.0:shilp 0.0.0.0:* 
LISTEN 0 100 127.0.0.1:18083 0.0.0.0:* users:(("vboxwebsrv",pid=429,fd=9))
...

Show socket usage summary

Pass -s option to get a list of socket related stats, -t and -u can be used to show only tcp or udp stats respectively. The default will show both.

# ss -s
Total: 818 (kernel 946)
TCP: 65 (estab 42, closed 3, orphaned 4, synrecv 0, timewait 1/0), ports 0

Transport Total IP IPv6
* 946 - - 
RAW 1 0 1 
UDP 14 8 6 
TCP 62 56 6 
INET 77 64 13 
FRAG 0 0 0

Zamanlayıcı bilgilerini gösterir

-o seçeneği kullanılarak zamanlayıcı bilgisi alınabilir.

# ss -tn -o

Yalnızca ham paketleri görüntüle

-w komut seçeneğini kullanın,

# ss -w
Recv-Q Send-Q Local Address:Port Peer Address:Port 
0 0 *:ipv6-icmp *:*

 

 

Yazının orijinlini buradan okuyabilirsiniz.

 

 

 

 

 

Skip to content