Linux Sunucuda TCP Bağlantı Sayısı Nasıl Kontrol Edilir?

Linux sunucuda TCP bağlantı sayısını kontrol etmek; trafik artışlarını anlamak, uygulama sorunlarını araştırmak ve bağlantı yoğunluğunu izlemek için önemlidir. Web sunucusu, veritabanı ve SSH gibi servislerin bağlantılarını terminal üzerinden inceleyebilirsiniz.

Kurulmuş TCP bağlantılarını saymak için şu komutu kullanabilirsiniz:

ss -Hnt state established | wc -l

Bu sayı, o anda görüntülenen ESTABLISHED durumundaki TCP soketlerini gösterir. Sitenizdeki ziyaretçi sayısını veya saniyelik istek miktarını doğrudan ifade etmez.

1. TCP Bağlantılarına Genel Bakış

Bağlantı istatistiklerinin özetini görüntülemek için:

ss -s

Tüm TCP soket kayıtlarını, dinleme durumundakiler dâhil saymak için:

ss -Hant | wc -l

Kullanılan seçeneklerin anlamları şöyledir:

Seçenek

İşlevi

-H

Başlık satırını kaldırır.

-a

Dinleyen ve dinlemeyen soketleri gösterir.

-n

Adres ve portları sayısal gösterir.

-t

TCP soketlerini seçer.

wc -l, çıktıdaki satırları sayar. Başlığın kaldırılması, sayıya fazladan bir satır eklenmesini önler. 

Tüm TCP kayıtları ile kurulmuş bağlantılar aynı şey değildir. Örneğin LISTEN, sunucunun yeni bağlantı beklediğini gösterir; bağlı bir kullanıcıyı temsil etmez.

2. Belirli Bir Portun Bağlantılarını Sayma

HTTPS hizmetinin yerel 443 portundaki kurulmuş bağlantıları:

ss -Hnt state established '( sport = :443 )' | wc -l

HTTP ve HTTPS bağlantılarını birlikte sayma:

ss -Hnt state established '( sport = :80 or sport = :443 )' | wc -l

SSH için varsayılan 22 portunu kontrol etme:

ss -Hnt state established '( sport = :22 )' | wc -l

Burada sport yerel portu, dport karşı uçtaki portu filtreler. Örneğin uzak bir MySQL sunucusunun 3306 portuna açılan bağlantılar:

ss -Hnt state established '( dport = :3306 )' | wc -l

Servisiniz farklı portta çalışıyorsa komuttaki numarayı değiştirin. Port ve durum filtreleri, ss aracının desteklediği sorgulama özellikleridir. 

3. TCP Bağlantı Durumlarını İnceleme

Bağlantı sayısı kadar, bağlantıların hangi aşamada olduğu da önemlidir:

TCP durumu

Anlamı

ESTABLISHED

Bağlantı kurulmuştur, veri aktarımına hazırdır.

LISTEN

Yeni bağlantılar beklenmektedir.

SYN-SENT

Bağlantı isteği gönderilmiş, yanıt beklenmektedir.

SYN-RECV

Bağlantı kurulumu henüz tamamlanmamıştır.

TIME-WAIT

Kapanış sonrasında gecikmiş paketler için beklenmektedir.

CLOSE-WAIT

Karşı uç kapanışı başlatmıştır; yerel uygulamanın kapatması beklenmektedir.

Bunlar TCP bağlantısının kurulma ve kapanma sürecindeki farklı aşamalardır. Özellikle TIME-WAIT, protokolün normal işleyişinin bir parçasıdır. 

Durumlara göre kayıt sayılarını listelemek için:

ss -Hant | awk '{print $1}' | sort | uniq -c | sort -nr

Örneğin sürekli artan CLOSE-WAIT kayıtları, uygulamanın bağlantıları kapatma davranışının incelenmesini gerektirebilir. Yüksek SYN-RECV sayısı ise trafik yoğunluğu, paket kaybı veya saldırı ihtimaliyle birlikte değerlendirilmelidir.

Tek başına yüksek bağlantı sayısı, DDoS saldırısı kanıtı değildir.

4. Bağlantıları Hangi Uygulamanın Kullandığını Görme

Kurulmuş bağlantıları süreç bilgileriyle görüntülemek için:

sudo ss -ntp state established

Dinleyen TCP portlarını ve ilgili süreçleri görmek için:

sudo ss -lntp

-p, soketleri kullanan süreçleri gösterir. Diğer kullanıcıların süreç bilgilerini görebilmek için yönetici yetkisi gerekebilir. (man7.org)

Bu inceleme, beklenmeyen bağlantıların web sunucusundan mı, veritabanından mı yoksa başka bir uygulamadan mı kaynaklandığını anlamaya yardımcı olur.

5. Bağlantı Sayısını Canlı Takip Etme

Kurulmuş TCP bağlantı sayısını iki saniyede bir yenilemek için:

watch -n 2 'ss -Hnt state established | wc -l'

Takibi sonlandırmak için Ctrl + C tuşlarına basabilirsiniz.

Tek seferlik ölçüm yerine birkaç dakika boyunca değişimi gözlemlemek daha anlamlıdır. Örneğin kampanya başlangıcında yükselen bağlantı sayısının sonradan düşmesi ile saatler boyunca sürekli artması farklı sorunlara işaret edebilir.

Sonuçları Yorumlarken Nelere Dikkat Edilmeli?

Bağlantı sayılarını değerlendirirken şu ayrımları göz önünde bulundurun:

  • Bağlantı sayısı, kullanıcı sayısı değildir. Bir kullanıcı birden fazla bağlantı açabilir; bir bağlantı da birden fazla HTTP isteği taşıyabilir.
  • Ölçüm anlıktır. Kısa süreli bağlantılar iki ölçüm arasında açılıp kapanabilir.
  • Yerel bağlantılar da sayılabilir. Aynı sunucudaki uygulama ve veritabanı arasındaki bağlantının iki ucu da listelenebilir.
  • Container kapsamı farklı olabilir. Ayrı ağ ad alanı kullanan container’ların soketleri, ana makinedeki normal ss çıktısında bütünüyle görünmez.
  • TCP ölçümü tüm web trafiğini kapsamaz. HTTP/3, UDP üzerinden çalışır.

Her sunucu için geçerli tek bir “ideal TCP bağlantı sayısı” yoktur. Kapasite; uygulamanın çalışma biçimine, bellek kullanımına, işlemciye ve servis limitlerine bağlıdır. Bu nedenle bağlantı artışlarını yanıt süreleri, hata oranları ve kaynak tüketimiyle birlikte değerlendirin.

Ekiphost ile İhtiyacınıza Uygun Sunucu Planlaması

Düzenli bağlantı takibi, sunucunuzun büyüyen trafik karşısında ne zaman ek kaynağa ihtiyaç duyduğunu görmenizi sağlar. Ekiphost ile projenizin kaynak ve altyapı ihtiyaçlarını değerlendirerek daha bilinçli bir sunucu seçimi yapabilirsiniz. Doğru kapasite planlaması ve teknik iletişim, istikrarlı bir sunucu deneyiminin önemli parçalarıdır.

War diese Antwort hilfreich? 0 Benutzer fanden dies hilfreich (0 Stimmen)