---
title: 'Bağlantı Noktaları ve Dinleyen Servisler'
source: 'https://academia.sh/tr/kurslar/linux-ag-yonetimi/baglanti-noktalari-ve-dinleyen-servisler'
course: 'Linux Ağ Yönetimi ve Sorun Giderme'
language: tr
updated: '2026-08-17T18:09:59+00:00'
license: 'CC BY-SA 4.0'
---

# Bağlantı Noktaları ve Dinleyen Servisler

Yerel dinleyen listesi sekiz aday nedenden yalnız birini eliyor; dışarıdan yapılan tek bir bağlantı denemesi aynı anda yedisini eliyor ve sekiz arıza üzerinden toplam 14'e karşı 42 aday eliyor.

Ad çözümleme de doğrulandığında geriye üç aday kalıyordu: servis dinlemiyor olabilir, güvenlik
duvarı paketi düşürüyor olabilir ya da büyük paket yolda kayboluyor olabilir. Üçü de sunucunun
kendi üzerinde bakılabilecek bir yer bırakıyor gibi görünür — dinleyen soketlernın
listesi. Liste yereldir, hızlıdır, ayrıntılıdır ve doğrudan sorunun geçtiği yere bakar.

Bu ders o listeyi çıkarır ve yanına ikinci bir sınama koyar: dışarıdan yapılan tek bir bağlantı
denemesi. İki sınama aynı anda, aynı arızaya karşı ölçülür ve aradaki fark kursun en büyük
farklarından biridir.

## Dinleyen Bağlantı Noktası Nedir

Bir servis bir bağlantı noktasını dinlemeye başladığında çekirdekte bir kayıt oluşur: hangi
adres ve bağlantı noktası çiftinin gelen istekleri kabul edeceği. Yerel envanter bu kayıtları
listeler. Listenin en önemli sütunu bağlantı noktası numarası değil, **bağlanma adresidir**.

```text
# örnek döküm — çalıştırılmamıştır
$ ss -ltn
State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
LISTEN  0       128     0.0.0.0:9443         0.0.0.0:*
LISTEN  0       128     127.0.0.1:7070       0.0.0.0:*
```

İki satır aynı biçimdedir ve iki farklı gerçeği anlatır. Birincisi bütün arayüzlerden gelen
istekleri kabul eder; ikincisi yalnız geri döngü arayüzünden, yani makinenin kendisinden gelen
istekleri kabul eder. Dışarıdan bakıldığında ikinci satırın karşılığı **hiç dinlemeyen** bir
bağlantı noktasıdır. Envanterde iki satır da "LISTEN" yazar.

Süreç sütunu ayrı bir okumadır ve yetki gerektirir: yetkisiz çalıştırılan listeleme aracı
bağlantı noktalarını gösterir, hangi sürecin dinlediğini göstermez. Bu, tanıda bir adım
kaybettirir — hangi bağlantı noktasının açık olduğu bilinir, hangi birimin açtığı bilinmez.

Bağlantı noktası numaralarının nasıl atandığı, hangi aralıkların geçici bağlantı noktalarına
ayrıldığı ve taşıma katmanının bağlantı kurma davranışı Bilgisayar Ağları müfredatının
konusudur; burada protokol kurulmaz, yalnız **bu makinenin envanteri** okunur.

- **AY25** — Kurgu sunucuda `veri-alma` birimi bütün arayüzlerden dinler; ikinci bir yerel
  yönetim ucu yalnız geri döngüden dinler ve dışarıya hiç açılmaz.
- **AY26** — Ortak tanımda dinleyen listesi ile bağlantı denemesi **aynı alana** bağlıdır:
  servis dinliyorsa liste de bunu gösterir, bağlantı da kurulur. Yalnız geri döngüye bağlanmış
  bir servis — listede dinliyor görünüp dışarıdan reddedilen durum — modelin **dışındadır**
  ve yukarıdaki uyarı ölçümün değil, okumanın parçasıdır.

## Listeyi Okurken Karışan Üç Şey

Envanter üç ayrı kavramı tek tabloda toplar ve üçü de "dinliyor" sözcüğüyle anlatıldığı için
birbirine karışır.

Birincisi **bağlantı yönelimli olmayan bağlantı noktalarıdır**. Bağlantı kuran taşıma
biçiminde bir bağlantı noktası açıkça dinleme durumuna geçer ve listede öyle görünür; bağlantı
kurmayan biçimde böyle bir durum yoktur, yalnız bir bağlantı noktasının bağlanmış olduğu
görülür. İki tür aynı listede yan yana durur ve aynı sözcükle okunur; oysa ikincisinde
"dinliyor" ifadesinin karşılığı yalnız "bu bağlantı noktasına gelen paketler bir sürece
teslim edilir"dir.

İkincisi **soket durumu ile servis sağlığının ayrılmasıdır**. Dinleme kaydının varlığı,
arkasındaki sürecin istekleri gerçekten işlediğini göstermez. İsteği kabul etmeyen ama soketi
açık bırakan bir süreç listede sağlıklı görünür; bekleyen istek kuyruğu dolar ve yeni bağlantılar
bir noktadan sonra düşmeye başlar. Sistem Yönetimi kursundaki ölçüm burada tekrarlanmaz; oradaki
sonuç şuydu: birimin "çalışıyor" görünmesi ile işini yapması iki ayrı gerçektir. Ağ tarafındaki
karşılığı, dinleme kaydının varlığı ile isteğin yanıtlanması arasındaki farktır.

Üçüncüsü **kalıcı yapılandırma ile çalışan durumun farkıdır** ve bu konunun ilk dersinden beri
tekrarlanan kalıptır. Elle başlatılmış bir servis listede görünür; önyüklemede başlaması için
ayrıca etkinleştirilmiş olması gerekir. Envanter yalnız şimdiki anı gösterir.

## İki Sınamanın Ölçüsü

```python
"""Yerel dinleyen listesi ile disaridan baglanti denemesinin ELEME gucu.
Ayni sekiz aday neden , ayni an , iki ayri sinama."""
SAGLAM = {"arayuz_acik": True, "adres_var": True, "ag_gecidi_dogru": True,
          "rota_var": True, "cozumleyici_yanit": True, "servis_dinliyor": True,
          "guvenlik_duvari_gecirir": True, "yol_bozulmadan": True}
ARIZA = {
    "arayuz-kapali":      {"arayuz_acik": False, "adres_var": False},
    "adres-yok":          {"adres_var": False},
    "ag-gecidi-yanlis":   {"ag_gecidi_dogru": False},
    "rota-eksik":         {"rota_var": False},
    "cozumleyici-sessiz": {"cozumleyici_yanit": False},
    "servis-dinlemiyor":  {"servis_dinliyor": False},
    "guvenlik-duvari-dusuruyor": {"guvenlik_duvari_gecirir": False},
    "buyuk-paket-dusuyor": {"yol_bozulmadan": False},
}


def durum(ariza, tablo):
    d = dict(SAGLAM)
    d.update(tablo[ariza])
    return d


def s_dinleyen(d):
    return "dinliyor" if d["servis_dinliyor"] else "dinlemiyor"


def s_baglanti(d):
    if not (d["arayuz_acik"] and d["adres_var"] and d["ag_gecidi_dogru"]
            and d["rota_var"]):
        return "ulasilamaz"
    if not d["guvenlik_duvari_gecirir"]:
        return "zaman-asimi"
    return "reddedildi" if not d["servis_dinliyor"] else "kuruldu"


SINAMA = {"dinleyen": s_dinleyen, "baglanti": s_baglanti}


def obekler(sinama, tablo=ARIZA):
    o = {}
    for a in tablo:
        o.setdefault(SINAMA[sinama](durum(a, tablo)), []).append(a)
    return o


for s in SINAMA:
    print(f"{s} sinamasi: yanit basina aday")
    for yanit, kume in obekler(s).items():
        print(f"  {yanit:12s} kalan {len(kume):2d}  elenen {len(ARIZA) - len(kume):2d}"
              f"  {', '.join(kume)}")
    print()
print("kahin basina elenen aday")
print(f"  {'gercek ariza':27s} {'dinleyen':>20s} {'baglanti':>20s}")
toplam = {"dinleyen": 0, "baglanti": 0}
for gercek in ARIZA:
    satir = ""
    for s in SINAMA:
        yanit = SINAMA[s](durum(gercek, ARIZA))
        elenen = len(ARIZA) - len(obekler(s)[yanit])
        toplam[s] += elenen
        satir += f"  {yanit:12s} {elenen:2d} "
    print(f"  {gercek:27s} {satir}")
print(f"  {'TOPLAM elenen':27s} {toplam['dinleyen']:18d} {toplam['baglanti']:19d}")
print()
print("aday kumesi supurmesi")
EK = dict(ARIZA, **{"servis-cokmus": {"servis_dinliyor": False}})
EKSIK = {k: v for k, v in ARIZA.items() if k != "guvenlik-duvari-dusuruyor"}
for ad, tablo in (("temel            8", ARIZA), ("+servis-cokmus   9", EK),
                  ("-guvenlik-duvari 7", EKSIK)):
    d = obekler("dinleyen", tablo)
    b = obekler("baglanti", tablo)
    dk = len(d.get("dinlemiyor", []))
    bk = len(b.get("reddedildi", []))
    print(f"  {ad:18s} dinleyen: yanit {len(d)}"
          f"  'dinlemiyor' elenen {len(tablo) - dk} kalan {dk}"
          f"  | baglanti: yanit {len(b)} en kotu kalan "
          f"{max(len(v) for v in b.values())}"
          f"  'reddedildi' kalan {bk}")
```

```
dinleyen sinamasi: yanit basina aday
  dinliyor     kalan  7  elenen  1  arayuz-kapali, adres-yok, ag-gecidi-yanlis, rota-eksik, cozumleyici-sessiz, guvenlik-duvari-dusuruyor, buyuk-paket-dusuyor
  dinlemiyor   kalan  1  elenen  7  servis-dinlemiyor

baglanti sinamasi: yanit basina aday
  ulasilamaz   kalan  4  elenen  4  arayuz-kapali, adres-yok, ag-gecidi-yanlis, rota-eksik
  kuruldu      kalan  2  elenen  6  cozumleyici-sessiz, buyuk-paket-dusuyor
  reddedildi   kalan  1  elenen  7  servis-dinlemiyor
  zaman-asimi  kalan  1  elenen  7  guvenlik-duvari-dusuruyor

kahin basina elenen aday
  gercek ariza                            dinleyen             baglanti
  arayuz-kapali                 dinliyor      1   ulasilamaz    4 
  adres-yok                     dinliyor      1   ulasilamaz    4 
  ag-gecidi-yanlis              dinliyor      1   ulasilamaz    4 
  rota-eksik                    dinliyor      1   ulasilamaz    4 
  cozumleyici-sessiz            dinliyor      1   kuruldu       6 
  servis-dinlemiyor             dinlemiyor    7   reddedildi    7 
  guvenlik-duvari-dusuruyor     dinliyor      1   zaman-asimi   7 
  buyuk-paket-dusuyor           dinliyor      1   kuruldu       6 
  TOPLAM elenen                               14                  42

aday kumesi supurmesi
  temel            8 dinleyen: yanit 2  'dinlemiyor' elenen 7 kalan 1  | baglanti: yanit 4 en kotu kalan 4  'reddedildi' kalan 1
  +servis-cokmus   9 dinleyen: yanit 2  'dinlemiyor' elenen 7 kalan 2  | baglanti: yanit 4 en kotu kalan 4  'reddedildi' kalan 2
  -guvenlik-duvari 7 dinleyen: yanit 2  'dinlemiyor' elenen 6 kalan 1  | baglanti: yanit 3 en kotu kalan 4  'reddedildi' kalan 1
```

Üç sayı yan yana. **Kâhin:** bu turda gerçek arıza `guvenlik-duvari-dusuruyor`; servis
dinliyor, paketler geliyor ve filtre onları sessizce düşürüyor. **Sınama:** yerel dinleyen
listesi çıkarılıyor ve yanıtı `dinliyor`; aynı anda dışarıdan bir bağlantı deneniyor ve yanıtı
`zaman-asimi`. **Elenen aday:** dinleyen listesi **bir**, bağlantı denemesi **yedi**. Liste
yedi aday bırakıyor, bağlantı denemesi tek aday bırakıyor ve tanıyı bitiriyor.

## Dört Yanıtın Gücü

Üçüncü tablo bu farkın tek bir arızaya özgü olmadığını gösteriyor. Sekiz arızanın hepsi için
toplandığında dinleyen listesi **14 aday**, bağlantı denemesi **42 aday** eliyor. Oran üçtür ve
tek tek bakıldığında dağılım daha da keskin: dinleyen listesi sekiz durumun **yedisinde** yalnız
bir aday eliyor, tek bir durumda yedi eliyor. Bağlantı denemesi hiçbir durumda dörtten aşağı
düşmüyor.

Farkın kaynağı çıktı miktarı değil, **yanıt sayısıdır**. Dinleyen listesi onlarca satır
üretebilir; taşıdığı ayrım tek bir ikili sorudur — servis dinliyor mu, dinlemiyor mu. Bağlantı
denemesi tek satır üretir ve dört ayrı yanıt taşır: ulaşılamaz, zaman aşımı, reddedildi,
kuruldu. Her yanıt farklı bir aday kümesine karşılık gelir. **Bir sınamanın eleme gücünün üst
sınırını çıktı uzunluğu değil, ayırt ettiği durum sayısı belirler.**

Yanıtların hangi adaylara karşılık geldiği tanıda doğrudan kullanılır. **Ulaşılamaz** yanıtı yol
sorunlarını işaret eder ve dört adayı bir arada bırakır; bu sınamanın en zayıf yanıtıdır ve
ayrımı önceki üç dersin sınamaları yapar. **Reddedildi** yanıtı, paketin hedefe ulaştığını ve
hedefte dinleyen bulunmadığını söyler; yol boyunca her şey çalışıyor demektir ve tek adayı
bırakır. **Zaman aşımı** yanıtı, paketin gittiğini ve hiçbir yanıt dönmediğini söyler; sessizce
düşüren bir filtrenin imzası budur. **Kuruldu** yanıtı, bağlantının açıldığını söyler ve
şaşırtıcı biçimde iki adayı ayakta bırakır: sessiz çözücü ile yolda düşen büyük paket.
Bağlantının kurulması, bağlantının **kullanılabilir** olduğu anlamına gelmez.

Bu son satır kursun ikinci iddiasının bu dersteki karşılığıdır. Reddedildi ile zaman aşımı
arasındaki ayrım tek bir sözcüktür ve yedişer aday eler; oysa aynı bilgiyi elde etmek için
yapılabilecek en ayrıntılı işlem — trafiğin tamamını kaydetmek — binlerce satır üretir. **Daha
çok çıktı daha iyi tanı demek değildir**; ayıran şey, çıktının kaç ayrı duruma karşılık
geldiğidir.

Bu ölçünün bir de tersten okunuşu var. Bağlantı denemesinin dört yanıtı, dört ayrı **arıza
sınıfına** karşılık geldiği için değerlidir; yanıtların çokluğu kendi başına yeterli olsaydı,
her yanıtı ayrı bir hata koduna bölen bir araç sınırsız güçlü olurdu. Değerli olan şey,
yanıtların aday kümesini **dengeli** bölmesidir: dört yanıt sekiz adayı 4-1-1-2 biçiminde
ayırıyor. Yanıtlardan üçü tek ya da iki adaya iniyor, biri dört adayda takılıyor. Sınamayı
zayıflatan yanıt, en sık karşılaşılan yanıttır; buradaki `ulasilamaz` da öyledir ve önceki üç
dersin sınamaları tam bu yanıtın bıraktığı dört adayı ayırmak için vardır.

## Envanterin Yeri

Dinleyen listesinin zayıf olması onu gereksiz yapmaz; yerini değiştirir. Liste, bağlantı
denemesi **reddedildi** dediğinde doğrulama aracıdır: reddedilme hedefte dinleyen bulunmadığını
söyler, envanter bunu yerelde teyit eder ve hangi bağlanma adresiyle dinlendiğini gösterir.
Liste ayrıca bağlantı denemesinin **yapılamadığı** durumlarda tek seçenektir — dışarıdan erişim
yoksa, sınamayı yapacak ikinci bir uç yoksa, yerel envanter elde kalan tek okumadır.

- **AY27** — Bağlantı denemesi, hedefe erişebilen ayrı bir uçtan yapılır; o ucun kendi
  yapılandırmasının sağlam olduğu varsayılır. Denemenin iki uçlu olması bu sınamanın maliyetini
  yükselten şeydir.
- **AY28** — Zaman aşımı ile reddedilme arasındaki ayrımın istemci tarafında görülebildiği
  varsayılır; ara katmanların yanıtı değiştirdiği durumlar modelin dışındadır.

Envanterin ikinci işlevi tanı değil, **yüzey sayımıdır**. Dışarıdan dinleyen her bağlantı
noktası, dışarıya açılmış bir kapıdır; yalnız geri döngüden dinleyen bir bağlantı noktası
değildir. Bu ayrım güvenlik duvarı derslerinin çıkış noktasıdır ve orada açık yüzey
sayılarak ele alınır. Bu derste yalnız şu söylenir: envanterin satır sayısı bir sağlık ölçüsü
değildir, bağlanma adresi sütunu okunmadan satır saymak yanıltıcıdır.

Üçüncü işlevi ise karşılaştırmadır. Envanterin bir yapılandırma değişikliğinden önce ve sonra
alınması, değişikliğin gerçekten ne yaptığını gösteren en ucuz kayıttır. Bir birim yeniden
başlatıldığında dinlenen bağlantı noktası değişmiş olabilir, bağlanma adresi daralmış ya da
genişlemiş olabilir; iki listenin farkı bunu tek bakışta verir. Bu, tanı sırasında değil,
değişiklik sırasında yapılan bir ölçümdür ve arıza doğduktan sonra elde bulunması, doğduktan
sonra aranmasından çok daha değerlidir.

## Aday Kümesi Süpürmesi

- **AY29** — Eklenen aday `servis-cokmus`, birimin çökmesi durumudur ve modelde
  `servis-dinlemiyor` ile aynı alanı bozar.
- **AY30** — Çıkarılan aday `guvenlik-duvari-dusuruyor`, bağlantı denemesinin dördüncü yanıtını
  tek başına dolduran adaydır.

Dördüncü tablo iki sınamayı aynı sarsıntı altında karşılaştırıyor. Aday eklendiğinde dinleyen
listesinin `dinlemiyor` yanıtı yine yedi aday eliyor ama geriye **iki** aday bırakıyor; aynı
şey bağlantı denemesinin `reddedildi` yanıtı için de geçerli. İki sınama da aynı ölçüde
zayıflıyor, çünkü ikisi de aynı alanı görüyor. Beklenen bir sonuçtur ve modelin iç tutarlılığını
doğrular.

Aday çıkarıldığında ise sınamalar farklı davranıyor. Dinleyen listesi yalnız bir aday kaybediyor:
`dinlemiyor` yanıtının elediği aday yediden **altıya** iniyor, yapısı değişmiyor. Bağlantı
denemesinin yanıt sayısı ise dörtten **üçe** düşüyor; `zaman-asimi` yanıtı aday listesinde
karşılıksız kaldığı için sınamanın ayırt ettiği durum sayısı azalıyor. En kötü kalan dörtte
sabit kaldığı hâlde sınamanın taşıdığı ayrım azaldı. **Bir sınamanın gücü, aday listesinde
karşılığı bulunan yanıtlarının sayısıdır** ve bu sayı liste değiştikçe değişir.

Bu, konu boyunca dört kez yapılan süpürmenin ortak sonucudur. Arayüz sınamasında kesin sanılan
yanıt kesinliğini yitirdi, rota okumasında aynı şey oldu, ad çözümlemesinde sınama tümüyle
değersizleşti, burada ise bağlantı denemesi bir yanıtını kaybetti. Dört durumda da sınama
tanımına hiç dokunulmadı. Ölçülen sayı sınamanın değil, **sınama ile aday listesinin ortak
ürünüdür** ve bir tanı yönteminin taşınabilirliği bu yüzden aday listesinin taşınabilirliğine
bağlıdır.

## Özet

- Yerel envanterin en önemli sütunu bağlantı noktası numarası değil bağlanma adresidir; yalnız
  geri döngüden dinleyen bir bağlantı noktası dışarıdan bakıldığında hiç dinlemiyordur ve
  listede aynı biçimde görünür.
- Dinleyen listesi **iki yanıt** verir ve beklenen yanıtta yalnız **bir** aday eler; dışarıdan
  yapılan bağlantı denemesi **dört yanıt** verir ve aynı arızada **yedi** aday eler.
- Sekiz arızanın tamamı üzerinden toplandığında dinleyen listesi **14**, bağlantı denemesi
  **42** aday eliyor. Farkın kaynağı çıktı uzunluğu değil, sınamanın ayırt ettiği durum sayısıdır.
- Bağlantı denemesinin dört yanıtı dört ayrı aday kümesine karşılık gelir: ulaşılamaz dört
  adayı bir arada bırakır, reddedildi ve zaman aşımı birer aday bırakır, kuruldu ise iki aday
  bırakır — bağlantının kurulması, kullanılabilir olduğu anlamına gelmez.
- Süpürme iki sınamayı ayırıyor: aday eklendiğinde ikisi de aynı ölçüde zayıflıyor, aday
  çıkarıldığında dinleyen listesinin yapısı korunurken bağlantı denemesinin yanıt sayısı
  dörtten üçe düşüyor.

## Sonraki Adım

Bu konu dört sınamayı tek tek ölçtü ve her birinin kaç aday elediğini saydı. Ortaya çıkan
tablo tek bir sınamanın yeterli olmadığını gösteriyor: en güçlüsü bile bazı durumlarda dört
adayı bir arada bırakıyor, en zayıfı ise başka hiçbir sınamanın ayıramadığı bir adayı ayırıyor.
Öyleyse asıl soru tek sınamanın değeri değil, **sınamaların hangi sırayla yapılacağıdır**. Bir
sonraki konu bu soruyu sorar: katmanlı tanı yöntemi sekiz arızanın hepsini çözmek için kaç adım
harcıyor, ters sıra kaç adım harcıyor ve her adımda en çok eleyeni seçen bir sıra ne kadar
kısaltıyor. Orada görülecek olan şey, en kısa sıranın uygulanabilir bir yordam **olmadığıdır**:
en çok eleyeni seçmek, hangi arızanın gerçek olduğunu önceden bilmeyi gerektirir ve tanı yapan
kişinin bilmediği tek şey tam olarak budur.
