Linux'ta ss Komutu Nasıl Kullanılır
Yayınlanan: 2022-01-29 ss
komutu, klasik netstat
modern bir alternatifidir. Ağ bağlantılarınız hakkında istatistik almak için Linux'ta kullanabilirsiniz. İşte bu kullanışlı araçla nasıl çalışacağınız.
ss Komutu netstat'a karşı
Kullanımdan kaldırılan netstat
komutunun yerine geçen ss
, bilgisayarınızın diğer bilgisayarlar, ağlar ve hizmetlerle nasıl iletişim kurduğu hakkında ayrıntılı bilgi verir.
ss
, İletim Kontrol Protokolü (TCP), Kullanıcı Datagram Protokolü (UDP), Unix (işlemler arası) ve ham yuvalar için istatistikleri görüntüler. Ham soketler ağ OSI düzeyinde çalışır, bu da TCP ve UDP başlıklarının taşıma katmanı tarafından değil uygulama yazılımı tarafından ele alınması gerektiği anlamına gelir. İnternet Denetim İletisi Protokolü (ICMP) iletilerinin ve ping yardımcı programının her ikisi de ham yuvalar kullanır.
ss kullanma
Zaten güncel bir Linux dağıtımının parçası olduğu için ss
yüklemeniz gerekmez. Ancak çıktısı çok uzun olabilir—630'dan fazla satır içeren sonuçlar elde ettik. Sonuçlar da çok geniş.
Bu nedenle, bir ekran görüntüsüne sığmayacağından elde ettiğimiz sonuçların metin temsillerini ekledik. Onları daha yönetilebilir hale getirmek için kırptık.
Ağ Bağlantılarını Listeleme
Komut satırı seçenekleri olmadan ss
kullanmak, dinlemeyen soketleri listeler. Yani dinleme durumunda olmayan soketleri listeler.
Bunu görmek için aşağıdakini yazın:
ss
Netid State Recv-Q Send-Q Yerel Adresi:Port Eş Adresi:Port İşlemi u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 /run/systemd/journal/stdout 35689 * 35688 u_str ESTAB 0 0 * 35550 * 35551 ... u_str ESTAB 0 0 * 38127 * 38128 u_str ESTAB 0 0 /run/dbus/system_bus_socket 21243 * 21242 u_str ESTAB 0 0 * 19039 * 19040 u_str ESTAB 0 0 /run/systemd/journal/stdout 18887 * 18885 u_str ESTAB 0 0 /run/dbus/system_bus_socket 19273 * 17306 icmp6 UNCONN 0 0 *:ipv6-icmp *:* udp ESTAB 0 0 192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps
Sütunlar aşağıdaki gibidir:
- Netid : Soket tipi. Örneğimizde, "u_str", bir Unix akışı, bir "udp" ve "icmp6", bir IP sürüm 6 ICMP soketi var. Linux kılavuz sayfalarında Linux soket türleri hakkında daha fazla açıklama bulabilirsiniz.
- State : Soketin içinde bulunduğu durum.
- Recv-Q : Alınan paketlerin sayısı.
- Send-Q : Gönderilen paketlerin sayısı.
- Yerel Adres: Bağlantı Noktası : Yerel adres ve bağlantı noktası (veya Unix yuvaları için eşdeğer değerler).
- Eş Adres:Port : Uzak adres ve port (veya Unix soketleri için eşdeğer değerler).
UDP soketleri için “Durum” sütunu genellikle boştur. TCP soketleri için aşağıdakilerden biri olabilir:
- DİNLE: Yalnızca sunucu tarafı. Soket bir bağlantı isteği bekliyor.
- SYN-SENT: Yalnızca istemci tarafı. Bu soket bir bağlantı isteğinde bulundu ve kabul edilip edilmediğini görmek için bekliyor.
- SYN-RECEIVED: Yalnızca sunucu tarafı. Bu soket, bir bağlantı talebini kabul ettikten sonra bir bağlantı onayı bekliyor.
- KURULDU: Sunucu ve istemciler. Sunucu ve istemci arasında, ikisi arasında veri aktarımına izin veren çalışan bir bağlantı kuruldu.
- FIN-WAIT-1: Sunucu ve istemciler. Bu soket, uzak soketten bir bağlantı sonlandırma talebi veya daha önce bu yuvadan gönderilen bir bağlantı sonlandırma talebinin onayını bekliyor.
- FIN-WAIT-2: Sunucu ve istemciler. Bu soket, uzak soketten bir bağlantı sonlandırma talebi bekliyor.
- YAKIN BEKLE: Sunucu ve istemci. Bu soket, yerel kullanıcıdan bir bağlantı sonlandırma talebi 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 bir onayını bekliyor.
- ZAMAN-BEKLE: Sunucu ve istemciler. Bu soket, uzak soketin sonlandırma talebini aldığını bildirmek için uzak sokete bir alındı bilgisi gönderdi. Şimdi onayın alındığından emin olmak için bekliyor.
- KAPALI: Bağlantı yok, bu nedenle soket sonlandırıldı.
Dinleme Yuvalarını Listeleme
Dinleme soketlerini görmek için -l
(dinleme) seçeneğini şu şekilde ekleyeceğiz:
ss -l
Netid State Recv-Q Send-Q Yerel Adresi:Port Eş Adresi:Port İşlemi nl BAĞLANTISIZ 0 0 rtnl:NetworkManager/535 * nl UNCONN 0 0 rtnl:evrim-adresi/2987 * ... u_str DİNLE 0 4096 /run/systemd/private 13349 * 0 u_seq DİNLE 0 4096 /run/udev/kontrol 13376 * 0 u_str DİNLE 0 4096 /tmp/.X11-unix/X0 33071 * 0 u_dgr UNCONN 0 0 /run/systemd/journal/syslog 13360 * 0 u_str DİNLE 0 4096 /run/systemd/fsck.progress 13362 * 0 u_dgr UNCONN 0 0 /run/user/1000/systemd/notify 32303 * 0
Bu soketlerin hepsi bağlantısız ve dinliyor. “rtnl”, çekirdek ve kullanıcı alanı süreçleri arasında bilgi aktarmak için kullanılan yönlendirme net bağlantısı anlamına gelir.
Tüm Soketleri Listeleme
Tüm soketleri listelemek için -a
(tümü) seçeneğini kullanabilirsiniz:
ss -a
Netid State Recv-Q Send-Q Yerel Adresi:Port Eş Adresi:Port İşlemi nl BAĞLANTISIZ 0 0 rtnl:NetworkManager/535 * nl UNCONN 0 0 rtnl:evrim-adresi/2987 * ... u_str DİNLE 0 100 genel/showq 23222 * 0 u_str DİNLE 0 100 özel/hata 23225 * 0 u_str DİNLE 0 100 özel/tekrar dene 23228 * 0 ... udp BAĞLANTISIZ 0 0 0.0.0.0:631 0.0.0.0:* udp BAĞLANTISIZ 0 0 0.0.0.0:mdns 0.0.0.0:* ... tcp DİNLE 0 128 [::]:ssh [::]:* tcp DİNLE 0 5 [::1]:ipp [::]:* tcp DİNLE 0 100 [::1]:smtp [::]:*
Çıktı, durumdan bağımsız olarak tüm soketleri içerir.
TCP Soketlerini Listeleme
Ayrıca yalnızca eşleşen yuvaların görüntülenmesi için bir filtre uygulayabilirsiniz. -t
(TCP) seçeneğini kullanacağız, bu nedenle yalnızca TCP soketleri listelenecektir:
ss -a -t
UDP Soketlerini Listeleme
-u
(UDP) seçeneği, aynı tür filtreleme eylemini gerçekleştirir. Bu sefer sadece UDP soketlerini göreceğiz:
ss -a -u
Durum Recv-Q Gönder-Q Yerel Adresi:Port Eş Adresi:Port İşlemi UNCONN 0 0 0.0.0.0:631 0.0.0.0:* UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:* UNCONN 0 0 0.0.0.0:60734 0.0.0.0:* UNCONN 0 0 127.0.0.53%lo:alan 0.0.0.0:* ESTAB 0 0 192.168.4.28%enp0s3:bootpc 192.168.4.1:bootps BAĞLANTIYI 0 0 [::]:mdns [::]:* UNCONN 0 0 [::]:51193 [::]:*
Unix Soketlerini Listeleme
Yalnızca Unix soketlerini görmek için aşağıda gösterildiği gibi -x
(Unix) seçeneğini dahil edebilirsiniz:
ss -a -x
Netid State Recv-Q Send-Q Yerel Adresi:Port Eş Adresi:Port İşlemi u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 * 23183 * 23184 u_str ESTAB 28 0 @/tmp/.X11-unix/X0 52640 * 52639 ... u_str ESTAB 0 0 /run/systemd/journal/stdout 18887 * 18885 u_str ESTAB 0 0 /run/dbus/system_bus_socket 19273 * 17306
Ham Yuvaları Listeleme
Ham yuvalar için filtre -w
(ham) seçeneğidir:
ss -a -w
IP Sürüm 4 Soketlerini Listeleme
TCP/IP sürüm 4 protokolünü kullanan yuvalar -4
(IPV4) seçeneği kullanılarak listelenebilir:
ss -a -4
IP Sürüm 6 Soketlerini Listeleme
Eşleşen IP sürüm 6 filtresini -6
(IPV6) seçeneğiyle şu şekilde açabilirsiniz:
ss -a -6
Duruma Göre Soketleri Listeleme
Durum seçeneği ile soketleri bulundukları state
göre listeleyebilirsiniz. Bu yerleşik, dinleme veya kapalı durumlarla çalışır. Ayrıca ağ adreslerini adlara ve bağlantı noktalarını protokollere dönüştürmeye çalışan çözümleme seçeneğini ( -r
) kullanacağız.
Aşağıdaki komut, kurulmuş TCP bağlantılarını arayacak ve ss
, adları çözmeye çalışacaktır:
ss -t -r durumu kuruldu
Kurulu durumda olan dört bağlantı listelenir. Ana bilgisayar adı ubuntu20-04 çözüldü ve ikinci satırda SSH bağlantısı için 22 yerine “ssh” gösteriliyor.
Dinleme durumunda soket aramak için bunu tekrarlayabiliriz:
ss -t -r durum dinleme
Recv-Q Gönder-Q Yerel Adresi:Port Eş Adresi:Port İşlemi 0 128 yerel ana bilgisayar:5939 0.0.0.0:* 0 4096 localhost%lo:alan 0.0.0.0:* 0 128 0.0.0.0:ssh 0.0.0.0:* 0 5 localhost:ipp 0.0.0.0:* 0 100 yerel ana bilgisayar:smtp 0.0.0.0:* 0 128 [::]:ssh [::]:* 0 5 ip6-localhost:ipp [::]:* 0 100 ip6-localhost:smtp [::]:*
Protokole Göre Soketleri Listeleme
Sırasıyla hedef ve kaynak bağlantı noktalarını temsil eden dport
ve sport
seçenekleriyle belirli bir protokolü kullanan soketleri listeleyebilirsiniz.
established
bir bağlantıda HTTPS protokolünü kullanan soketleri listelemek için aşağıdakileri yazıyoruz (açılan parantezden sonraki ve kapanış parantezinden önceki boşluğa dikkat edin):
ss -a devlet kuruldu '( dport = :https veya spor = :https )'
Protokol adını veya genellikle bu protokolle ilişkilendirilen bağlantı noktasını kullanabiliriz. Secure Shell (SSH) için varsayılan bağlantı noktası 22 numaralı bağlantı noktasıdır.
Protokol adını bir komutta kullanacağız ve ardından port numarasını kullanarak tekrarlayacağız:
ss -a '( dport = :ssh veya spor = :ssh )'
ss -a '( dport = :22 veya spor = :22 )'
Beklendiği gibi, aynı sonuçları alıyoruz.
Belirli Bir IP Adresine Bağlantıları Listeleme
dst
(destination) seçeneği ile belirli bir hedef IP adresine olan bağlantıları listeleyebiliriz.
Aşağıdakileri yazıyoruz:
ss -a dst 192.168.4.25
Süreçleri Tanımlama
Soketleri hangi işlemlerin kullandığını görmek için, aşağıda gösterildiği gibi işlemler seçeneğini ( -p
) kullanabilirsiniz ( sudo
kullanmanız gerektiğini unutmayın):
sudo ss -t -p
Durum Recv-Q Gönder-Q Yerel Adresi:Port Eş Adresi:Port İşlemi ESTAB 0 0 192.168.4.28:57650 54.218.19.119:https kullanıcıları:((("firefox",pid=3378,fd=151)) ESTAB 0 0 192.168.4.28:ssh 192.168.4.25:43946 kullanıcılar:(("sshd",pid=4086,fd=4),("sshd",pid=3985,fd=4))
Bu bize TCP soketlerinde kurulan iki bağlantının SSH arka plan programı ve Firefox tarafından kullanıldığını gösterir.
Değerli Bir Halef
ss
komutu, daha önce netstat
tarafından sağlanan bilgilerin aynısını, ancak daha basit, daha erişilebilir bir şekilde sağlar. Daha fazla seçenek ve ipucu için man sayfasına göz atabilirsiniz.
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar