Ekran Kartlı Sunucu Satışları Başladı. İncele
Altyapı ve Sistem Yönetimi

Port Nedir, Nasıl Açılır ve Nasıl Test Edilir?

TCP ve UDP farkı, sık kullanılan port listesi, Windows ve Linux’ta port açma, modem yönlendirmesi ve portun açık olduğunu doğrulama.

  • 15 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • Port, aynı IP adresi üzerindeki farklı servisleri birbirinden ayıran 0-65535 arası bir numaradır: IP binayı, port o binadaki daireyi gösterir.
  • TCP bağlantı kurar, sırayı korur ve kaybolan paketi yeniden gönderir (SSH 22, web 80/443, Minecraft Java 25565); UDP el sıkışmaz, gecikmeyi düşük tutar (Bedrock 19132, Source oyunları 27015).
  • Linux’ta sudo ufw allow 25565/tcp veya sudo firewall-cmd --permanent --add-port=25565/tcp, Windows’ta bir gelen kural yeterlidir; ama önce servisin gerçekten dinlediğini doğrulayın.
  • ss -tulpn | grep 25565 çıktısında adres 0.0.0.0 değil de 127.0.0.1 ise port dışarıya kapalıdır — güvenlik duvarının bunda hiçbir suçu yoktur.
  • Ev bağlantısında yönlendirme yaptığınız hâlde bağlantı gelmiyorsa büyük olasılıkla CGNAT arkasındasınız; modemin WAN IP’si 100.64.x.x aralığındaysa port yönlendirme hiçbir zaman çalışmaz.

Port, bir sunucuda çalışan farklı servisleri birbirinden ayıran 0 ile 65535 arasında bir numaradır. IP adresi paketin hangi makineye gideceğini söyler; port ise o makinede paketi hangi programın alacağını belirler. Tek bir IP üzerinde aynı anda bir web sitesi, bir SSH oturumu ve bir Minecraft sunucusu çalışabilmesinin sebebi budur.

“Port açma” dendiğinde aslında iki ayrı şeyden bahsedilir ve bunların karıştırılması sorunların yarısını doğurur. Birincisi, bir programın o portu dinlemeye başlaması. İkincisi, güvenlik duvarının o porta gelen trafiği geçirmesi. İkisinden biri eksikse bağlantı kurulmaz — ve hata mesajı hangisinin eksik olduğunu size söylemez.

Aşağıda portun ne olduğunu, TCP ile UDP farkının pratikte neye karşılık geldiğini, Linux ve Windows tarafında port açmayı, ev bağlantısındaki yönlendirme ve CGNAT meselesini, en önemlisi de portun gerçekten açık olduğunu nasıl doğrulayacağınızı bulacaksınız.

Port Nedir? IP Adresiyle Birlikte Nasıl Çalışır?#

Bir ağ paketinin adresi tek parça değildir. Şu üçlü birlikte anlam kazanır: IP adresi + port numarası + protokol. Buna soket (socket) denir. 185.10.20.30:25565/TCP ile 185.10.20.30:25565/UDP birbirinden farklı iki hedeftir; aynı numarayı taşısalar bile ayrı kuyruklardır.

Port numarası 16 bitlik bir alanda tutulur, bu yüzden üst sınır 65535’tir. Numaralar üç mantıksal gruba ayrılır:

0 - 1023 (iyi bilinen portlar)
Standart servislere ayrılmıştır: 22 SSH, 25 SMTP, 53 DNS, 80 HTTP, 443 HTTPS. Linux’ta bu aralıkta dinleme yapabilmek için root yetkisi gerekir.
1024 - 49151 (kayıtlı portlar)
Uygulamaların IANA’ya kaydettirdiği aralık. Minecraft 25565, MySQL 3306, RDP 3389 buradadır. Normal kullanıcı yetkisiyle dinlenebilir.
49152 - 65535 (dinamik / geçici portlar)
İşletim sisteminin giden bağlantılar için rastgele atadığı aralık. Siz bir siteye bağlandığınızda kaynak portunuz genelde buradan seçilir.

Burada gözden kaçan bir ayrıntı var: giden bağlantılar için port açmanız gerekmez. Sunucunuz bir API’ye istek attığında ya da paket indirdiğinde güvenlik duvarı bu bağlantıyı zaten “kurulmuş bağlantı” olarak tanır ve cevabı içeri alır. Kural açmak yalnızca dışarıdan size gelen bağlantılar için gerekir. Bu yüzden tüm güvenlik duvarı ayarları “gelen kural” üzerinden konuşulur.

BilgiAynı port numarasını aynı IP üzerinde iki program birden dinleyemez. Minecraft sunucusunu başlatırken aldığınız “Failed to bind to port” hatası tam olarak bunu söyler: o port zaten başka bir süreç tarafından tutuluyordur — çoğu zaman kapandığını sandığınız eski sunucu süreci.

TCP ve UDP Farkı: Hangisi Ne Zaman Kullanılır?#

Port numarasının tek başına anlamı yok; hangi protokol üzerinde olduğu da belirtilmeli. İnternet üzerindeki neredeyse tüm trafik iki taşıma protokolünden birini kullanır.

TCP önce bir el sıkışma yapar (SYN, SYN-ACK, ACK), sonra veriyi sıralı biçimde taşır. Bir paket kaybolursa karşı taraf onaylamadığı için yeniden gönderilir. Sonuç: veri eksiksiz ve doğru sırada ulaşır, ama her onay bekleme bir miktar gecikme ekler.

UDP ise el sıkışmaz. Paketi yollar, arkasına bakmaz. Kaybolan paket kaybolmuş sayılır. Bu kulağa kötü geliyor ama oyunlar için genellikle doğru tercihtir: 40 milisaniye önceki oyuncu konumunu yeniden istemek anlamsızdır, o bilgi çoktan eskimiştir. Yeni paketi beklemek daha mantıklıdır.

ÖzellikTCPUDP
Bağlantı kurmaÜç aşamalı el sıkışmaYok, doğrudan gönderim
Paket sırası garantisiVarYok
Kayıp paketin yeniden gönderimiVarYok
Gecikme (latency)Daha yüksekDaha düşük
Başlık boyutu20 bayt8 bayt
Dışarıdan test edilebilirlikKolay (bağlantı ya kurulur ya kurulmaz)Zor (cevap gelmemesi kapalı demek değildir)
Tipik kullanımWeb, SSH, FTP, veritabanı, Minecraft JavaOyun protokolleri, sesli sohbet, DNS, Minecraft Bedrock
TCP ve UDP karşılaştırması

Bazı servisler ikisini birden kullanır. Minecraft Java 25565/TCP üzerinden oynanır ama enable-query=true ayarını açtıysanız aynı numara UDP tarafında da dinlenir. FiveM 30120 portunu hem TCP hem UDP olarak ister. RDP ise 3389/TCP üzerinden çalışır, UDP kanalını yalnızca performans için kullanır — UDP kapalıysa bağlantı yavaşlar ama kopmaz.

DikkatGüvenlik duvarı kuralında protokolü yanlış seçmek, port açma işlerinde gördüğümüz en yaygın hatadır. Bedrock sunucusu için 19132 portunu TCP olarak açan bir kişi kuralın listede göründüğünü görür, her şeyin yolunda olduğunu sanır ve hiçbir oyuncu bağlanamaz. Kuralı yazarken protokolü iki kez kontrol edin.

Sık Kullanılan Port Numaraları#

Aşağıdaki tablo, sunucu yönetirken en sık karşılaşacağınız portları toplar. Oyun sunucularının varsayılan portlarını yapılandırma dosyasından değiştirebilirsiniz; tabloda yazan değerler kutudan çıktığı hâlidir.

PortProtokolServisNot
22TCPSSHSunucu yönetimi; sürekli tarama altındadır
25TCPSMTPEv bağlantılarında çoğunlukla kapalıdır
53UDP + TCPDNSBüyük cevaplar TCP’ye düşer
80TCPHTTPGenelde 443’e yönlendirilir
443TCP (+UDP)HTTPSHTTP/3 aynı numarayı UDP’de kullanır
3306TCPMySQL / MariaDBDışarıya açılmamalı
3389TCP (+UDP)RDP (Uzak Masaüstü)Herkese açık bırakmayın
25565TCPMinecraft Java EditionQuery açıksa UDP de gerekir
25575TCPMinecraft RCONYalnızca yerel erişim
19132UDPMinecraft BedrockIPv6 için 19133
27015UDP (+TCP)Source oyunları (CS2, Garry’s Mod)Steam sorgusu aynı numarayı kullanır
28015UDPRustRCON için 28016/TCP
30120TCP + UDPFiveMİkisi birden açılmalı
7777TCP / UDPTerraria, ARK, Satisfactory, SA-MPOyuna göre protokol değişir
8211UDPPalworldTek port yeterlidir
2456-2458UDPValheimAralık olarak açılır
16261UDPProject ZomboidEk oyuncu portları gerekebilir
9987UDPTeamSpeak 3 (ses)Dosya aktarımı 30033/TCP
Sunucu yönetiminde sık kullanılan port numaraları

Bir portu kim tuttuğunu merak ederseniz tahmin yürütmeye gerek yok; birazdan anlatacağımız ss ve netstat komutları size süreç adını da verir.

Linux’ta Port Açma: UFW ve firewalld#

Linux tarafında iki yaygın arayüz var. Ubuntu ve Debian’da UFW, AlmaLinux ve Rocky Linux’ta firewalld. İkisi de arka planda çekirdeğin paket filtresini yönetir; siz yalnızca daha okunabilir bir dil kullanırsınız. Konunun tamamı için sunucu güvenlik duvarı yapılandırması sayfasına bakabilirsiniz.

UFW (Ubuntu ve Debian)#

# Önce mevcut durumu gör
sudo ufw status verbose

# SSH'ı AÇMADAN ufw enable YAPMAYIN - kendinizi kilitlersiniz
sudo ufw allow 22/tcp

# Minecraft Java (TCP) ve Bedrock (UDP)
sudo ufw allow 25565/tcp
sudo ufw allow 19132/udp

# Web sunucusu için hazır profil
sudo ufw allow 'Nginx Full'

# Port aralığı - Valheim örneği
sudo ufw allow 2456:2458/udp

# Yalnızca belirli bir IP'den SSH'a izin ver (çok daha güvenli)
sudo ufw allow from 78.180.10.20 to any port 22 proto tcp

# Güvenlik duvarını etkinleştir
sudo ufw enable

# Kuralları numaralı listele ve numarayla sil
sudo ufw status numbered
sudo ufw delete 3

# Kuralı yazdığınız gibi de silebilirsiniz
sudo ufw delete allow 25565/tcp

UFW varsayılan olarak gelen tüm trafiği reddeder, giden trafiğe izin verir. Bu doğru bir varsayılandır ve değiştirmenize gerek yok. Minecraft’a özel adımlar için UFW ile Minecraft portu açma sayfasında daha ayrıntılı bir anlatım var.

firewalld (AlmaLinux ve Rocky Linux)#

# Servis ayakta mı, hangi bölge (zone) aktif?
sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones

# Kalıcı kural ekle (--permanent olmadan yazılan kural yeniden başlatmada silinir)
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --permanent --add-port=19132/udp
sudo firewall-cmd --permanent --add-port=2456-2458/udp

# Hazır servis tanımlarını da kullanabilirsiniz
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=https

# DEĞİŞİKLİKLER RELOAD OLMADAN GEÇERLİ OLMAZ
sudo firewall-cmd --reload

# Sonucu doğrula
sudo firewall-cmd --list-all

# Kaynak IP kısıtlı kural (zengin kural)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="78.180.10.20" port port="22" protocol="tcp" accept'
sudo firewall-cmd --reload

# Kural kaldırma
sudo firewall-cmd --permanent --remove-port=25565/tcp
sudo firewall-cmd --reload
UyarıUzaktaki bir sunucuda güvenlik duvarını etkinleştirmeden önce SSH portunuza izin verdiğinizden kesinlikle emin olun. Bu adımı atlayan kişi ufw enable yazdığı anda oturumunu kaybeder ve sunucuya bir daha SSH ile giremez. Kurtarma için sağlayıcının konsol erişimi gerekir. Bağlantınızı SSH anahtarıyla yapılandırmak ayrı bir konu, ama kilitlenme riskini azaltmaz — önce kuralı açın, sonra etkinleştirin.

Windows Güvenlik Duvarında Gelen Kural Oluşturma#

Windows Server ya da Windows 11 üzerinde çalışıyorsanız işlem “Gelen Kurallar” bölümünde bir kural tanımlamaktan ibaret. Arayüzden yapmayı tercih ediyorsanız:

  1. Gelişmiş güvenlik duvarı konsolunu açın#

    Başlat menüsüne wf.msc yazıp Enter’a basın. Aynı ekrana Denetim Masası > Windows Defender Güvenlik Duvarı > Gelişmiş Ayarlar yolundan da ulaşabilirsiniz.

  2. Yeni bir gelen kural başlatın#

    Sol taraftan Gelen Kurallar’a tıklayın, sağdaki panelden Yeni Kural’ı seçin. Kural türü olarak Bağlantı Noktası işaretleyin.

  3. Protokolü ve numarayı girin#

    TCP ya da UDP seçin, ardından “Belirli yerel bağlantı noktaları” alanına numarayı yazın: 25565. Birden çok port için virgülle (25565,25575), aralık için tire ile (2456-2458) yazabilirsiniz.

  4. Eylemi ve profili seçin#

    Bağlantıya izin ver seçeneğini işaretleyin. Sonraki ekranda Etki Alanı, Özel ve Genel profilleri karşınıza gelir. Sunucu internete açıksa Genel profilinin işaretli olması şarttır; en sık atlanan nokta budur.

  5. Kurala anlamlı bir ad verin#

    “Kural 1” değil, “Minecraft Java 25565 TCP” gibi. Altı ay sonra listeye baktığınızda hangi kuralın ne için açıldığını hatırlamak isteyeceksiniz.

Aynı işi tek satırda yapmayı tercih ederseniz PowerShell’i yönetici olarak açın:

# Minecraft Java - TCP
New-NetFirewallRule -DisplayName "Minecraft Java 25565" -Direction Inbound -Protocol TCP -LocalPort 25565 -Action Allow

# Minecraft Bedrock - UDP
New-NetFirewallRule -DisplayName "Minecraft Bedrock 19132" -Direction Inbound -Protocol UDP -LocalPort 19132 -Action Allow

# RDP'yi yalnızca kendi IP adresinize açın
New-NetFirewallRule -DisplayName "RDP kisitli" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 78.180.10.20 -Action Allow

# Kuralları listele
Get-NetFirewallRule -DisplayName "*Minecraft*" | Format-Table DisplayName, Enabled, Direction, Action

# Kuralı kaldır
Remove-NetFirewallRule -DisplayName "Minecraft Java 25565"
REM Eski ama her Windows surumunde calisan netsh yontemi
netsh advfirewall firewall add rule name="Minecraft 25565 TCP" dir=in action=allow protocol=TCP localport=25565

REM Kurali goruntule
netsh advfirewall firewall show rule name="Minecraft 25565 TCP"

REM Kurali sil
netsh advfirewall firewall delete rule name="Minecraft 25565 TCP"

Minecraft’a özel ekran adımları ve profil ayrıntıları için Windows Güvenlik Duvarında Minecraft portu açma sayfasına bakın. RDP’ye bağlanamıyorsanız sorun çoğu zaman portta değil, RDP bağlantı sorunları sayfasında anlattığımız başka bir yerdedir.

Ev Bağlantısında Port Yönlendirme ve CGNAT Engeli#

Sunucuyu evdeki bilgisayarda çalıştırıyorsanız iş bir kat daha karışır. Çünkü modeminiz bir NAT cihazıdır: dışarıya tek bir genel IP gösterir, evdeki tüm cihazlar onun arkasındaki özel ağdadır. Dışarıdan gelen bir paket modeme ulaşır ama modem onu hangi cihaza vereceğini bilmez. Yönlendirme (port forwarding) tam olarak bu eşleştirmeyi tanımlar.

Sıra şöyle işler:

  1. Sunucunun yerel IP adresini sabitleyin#

    Yerel IP genelde 192.168.1.x biçimindedir. Windows’ta ipconfig, Linux’ta ip a ile öğrenirsiniz. Bu adres DHCP ile dağıtıldığı için bir gün değişir ve yönlendirmeniz sessizce bozulur. Modem panelinden MAC adresine sabit IP ayırın (DHCP rezervasyonu).

  2. Modem arayüzüne girin#

    Tarayıcıya 192.168.1.1 yazın. Bölüm adı markaya göre değişir: “Port Yönlendirme”, “Port Forwarding”, “NAT”, “Sanal Sunucu” ya da “Virtual Server”.

  3. Kuralı tanımlayın#

    Dış port ve iç port aynı olsun (25565 → 25565), protokolü doğru seçin, hedef olarak sabitlediğiniz yerel IP’yi yazın. Bedrock için UDP, Java için TCP.

  4. Bilgisayarın kendi güvenlik duvarını da açın#

    Modem yönlendirmesi paketi bilgisayara ulaştırır, ama Windows Güvenlik Duvarı kuralı yoksa paket orada durur. İki katman da geçilmeli.

CGNAT: yönlendirme neden hiç çalışmıyor?#

Herşeyi doğru yaptığınız hâlde dışarıdan bağlantı gelmiyorsa bakılacak ilk yer modemin WAN IP adresidir. Modem arayüzünde “WAN IP” ya da “İnternet IP” diye görünen adresi, tarayıcıdan öğrendiğiniz genel IP ile karşılaştırın.

Modem WAN IP            Anlamı
----------------------  ----------------------------------------
88.240.x.x              Gerçek genel IP - yönlendirme çalışır
100.64.x.x - 100.127.x.x CGNAT - yönlendirme ASLA çalışmaz
10.x.x.x                Sağlayıcı özel ağı - çalışmaz
172.16.x.x - 172.31.x.x Sağlayıcı özel ağı - çalışmaz
192.168.x.x             Ya ikinci bir modem var ya da CGNAT

CGNAT, sağlayıcının aynı genel IP’yi onlarca aboneye paylaştırması demektir. Sizin tarafınızda çözümü yoktur; modem ayarıyla, port değiştirmekle, farklı yazılım denemekle aşılmaz. Üç seçenek kalır: sağlayıcıdan genel IP talep etmek (çoğu operatörde ücretli ve her zaman verilmez), dışarıda bir sunucu üzerinden tünel kurmak (ek gecikme getirir) ya da sunucuyu doğrudan bir veri merkezinde çalıştırmak.

İpucuEv bağlantısında port yönlendirme çalışsa bile bir oyun sunucusu için sağlıklı bir ortam değildir: yükleme hızı düşüktür, IP adresiniz dinamiktir, elektrik ve internet kesintisi doğrudan sunucuya yansır, üstelik genel IP’niz herkese görünür hâle gelir. Birkaç kişilik bir test dışında kalıcı sunucuyu VDS üzerinde çalıştırmak hem daha kolay hem daha güvenlidir.

Modem markalarına göre menü adları ve oyun tarafındaki yönlendirme ayrıntıları için Minecraft sunucu port yönlendirme sayfası daha kapsamlıdır.

Portun Gerçekten Açık Olduğunu Doğrulama#

Bu bölüm sayfanın en işe yarar kısmı. Çünkü “port açık mı” sorusunun tek bir cevabı yok — iki ayrı yerden bakmak gerekiyor.

Sunucunun içinden: gerçekten dinliyor mu?#

# Dinlenen tüm TCP ve UDP portlarını süreç adıyla listele
sudo ss -tulpn

# Belirli bir portu ara
sudo ss -tulpn | grep 25565

# Ornek cikti - DIKKAT EDILECEK KISIM ADRES SUTUNU:
# tcp  LISTEN 0  50  0.0.0.0:25565  0.0.0.0:*  users:(("java",pid=1428,fd=98))
#                    ^^^^^^^ dogru: tum arayuzlerde dinliyor
#
# tcp  LISTEN 0  50  127.0.0.1:25565  0.0.0.0:*
#                    ^^^^^^^^^ yanlis: yalnizca sunucunun kendisinden erisilir

# Eski sistemlerde ss yoksa
sudo netstat -tulpn | grep 25565

# Portu hangi surec tutuyor?
sudo lsof -i :25565

Adres sütunundaki 0.0.0.0 ile 127.0.0.1 farkı kritiktir. 127.0.0.1 yazıyorsa servis yalnızca kendi içine hizmet veriyordur; dünyadaki hiçbir güvenlik duvarı kuralı bunu düzeltmez. Çözüm servisin yapılandırmasındadır: Minecraft’ta server.properties içindeki server-ip= satırı boş bırakılmalıdır, MySQL’de bind-address, birçok uygulamada listen ya da host ayarı aynı işi görür.

# Windows: dinlenen portlar
Get-NetTCPConnection -LocalPort 25565 -State Listen

# UDP tarafı
Get-NetUDPEndpoint -LocalPort 19132

# Klasik yöntem - PID ile birlikte
netstat -ano | findstr :25565

# Çıkan PID hangi programa ait?
tasklist /FI "PID eq 1428"

Dışarıdan: paket gerçekten içeri girebiliyor mu?#

Bu testi sunucunun kendi üzerinden yapmanın anlamı yok; başka bir makineden ya da başka bir ağdan denemelisiniz. Kendi bilgisayarınız yeterlidir.

# TCP portu açık mı? (netcat)
nc -zv 185.10.20.30 25565
# Connection to 185.10.20.30 25565 port [tcp/*] succeeded!

# nmap ile tek port taraması
nmap -Pn -p 25565 185.10.20.30
# PORT      STATE  SERVICE
# 25565/tcp open   minecraft

# UDP taraması (yavaştır ve sonucu her zaman kesin değildir)
sudo nmap -sU -Pn -p 19132 185.10.20.30

# Yol üzerinde nerede tıkanıyor?
mtr -rwc 30 185.10.20.30
# PowerShell ile TCP testi (netcat kurmaya gerek yok)
Test-NetConnection -ComputerName 185.10.20.30 -Port 25565

# TcpTestSucceeded : True  -> port açık
# TcpTestSucceeded : False -> kapalı ya da filtreleniyor
DikkatTest-NetConnection ve nc -z yalnızca TCP test eder. Bedrock (19132/UDP) ya da Source oyunları (27015/UDP) için bu araçlar size hiçbir şey söylemez. UDP’de karşı taraf cevap vermek zorunda olmadığı için “kapalı” sonucu yanıltıcıdır. UDP portunun gerçekten çalıştığını anlamanın en kesin yolu, oyunun kendi istemcisiyle bağlanmayı denemektir.

“Port Açtım Ama Olmadı” — Kontrol Sırası#

Destek taleplerinde en sık gördüğümüz senaryo bu. Sırayı atlamadan ilerleyin; her adımı gerçekten doğrulayın, varsaymayın. Sorunun yüzde doksanı ilk üç adımda çıkar.

  1. Servis çalışıyor mu?#

    Port açmak, arkasında dinleyen bir program yoksa hiçbir işe yaramaz. Sunucu konsolunu açın, süreci kontrol edin. Minecraft sunucusu bir hata alıp kapandıysa 25565’i kimse dinlemiyordur.

  2. Doğru arayüzde mi dinliyor?#

    ss -tulpn çıktısında 0.0.0.0:PORT mı yoksa 127.0.0.1:PORT mı yazıyor? İkincisiyse yapılandırma dosyasındaki bind adresini düzeltin ve servisi yeniden başlatın.

  3. Protokol doğru mu?#

    TCP servisine UDP kuralı yazmak (ya da tersi) tamamen sessiz bir hatadır. Kural listede görünür, hiçbir uyarı çıkmaz, bağlantı kurulmaz.

  4. Sunucudaki güvenlik duvarı kuralı aktif mi?#

    sudo ufw status verbose ya da sudo firewall-cmd --list-all ile bakın. firewalld kullanıyorsanız --permanent yazıp --reload yapmayı unutmuş olabilirsiniz; kural dosyada vardır ama çalışan yapılandırmada yoktur.

  5. Sağlayıcı tarafında ikinci bir katman var mı?#

    Bazı ortamlarda sunucunun önünde ayrı bir ağ filtresi ya da güvenlik grubu bulunur. Sunucu içindeki kural doğru olsa bile paket oraya varmadan durdurulur. Panelinizden kontrol edin, emin değilseniz destek talebi açın.

  6. Ev bağlantısıysa modem ve CGNAT#

    Yönlendirme kuralı doğru IP’ye mi gidiyor, yerel IP değişmiş olabilir mi, WAN IP 100.64.x.x aralığında mı? Bu üç soruyu sırayla yanıtlayın.

  7. İstemci tarafını da eleyin#

    Yanlış IP, eksik port numarası, kurum ya da okul ağının çıkış filtresi, mobil veri üzerinden farklı davranan bir bağlantı… Başka bir ağdan denemek bu ihtimalleri hızlıca eler. Alınan hata metni “Connection refused” ise paket sunucuya ulaşıyor ama kimse dinlemiyordur; “Connection timed out” ise paket yolda düşürülüyordur. Bu ayrım tek başına sorunun yerini gösterir.

SonuçHata mesajının türü size yön verir. Refused = ulaştı, dinleyen yok (servis kapalı ya da yanlış port). Timed out = hiç ulaşmadı (güvenlik duvarı, yönlendirme ya da yanlış IP). Bu iki kelimeyi ayırt etmek, arama alanını yarıya indirir.

Gereksiz Port Açmanın Güvenlik Maliyeti#

Açtığınız her port, dışarıya bakan yeni bir kapıdır. İnternete bağlı bir sunucu, açıldıktan dakikalar sonra otomatik taramaların hedefi olur; bu taramalar bir insanın sizi seçmesiyle değil, tüm IP bloklarını sırayla denemesiyle çalışır.

Üç kural işi büyük ölçüde çözer:

  • Varsayılan reddet. Güvenlik duvarı gelen tüm trafiği kapalı tutsun, siz yalnızca gerekeni açın. UFW ve firewalld zaten böyle gelir; bu davranışı bozmayın.
  • Kaynağı kısıtlayın. Yönetim portları (SSH 22, RDP 3389, panel arayüzleri) herkese açık olmak zorunda değil. Sabit IP’niz varsa yalnızca ona izin verin; yoksa VPN ya da SSH tüneli kullanın.
  • Yerel kalması gerekeni yerelde tutun. MySQL 3306, Redis 6379, Minecraft RCON 25575 gibi servisler dışarıdan erişilmemeli. Bunları 127.0.0.1 üzerinde dinletin ve gerektiğinde SSH tüneliyle bağlanın.
# MySQL'i disariya acmak yerine SSH tuneli kurun
# Yerel 3307 portunuz, sunucunun 127.0.0.1:3306 adresine baglanir
ssh -L 3307:127.0.0.1:3306 yonetici@185.10.20.30

# Ardindan kendi bilgisayarinizda:
mysql -h 127.0.0.1 -P 3307 -u kullanici -p

# Ayni mantik panel arayuzleri icin de gecerli
ssh -L 8080:127.0.0.1:8080 yonetici@185.10.20.30

Açık bırakmak zorunda olduğunuz portlar için de yapabilecekleriniz var. SSH’a yönelen kaba kuvvet denemelerini otomatik banlamak için Fail2ban kurulumu sayfasındaki yapılandırmayı uygulayın. Oyun portu gibi herkese açık kalmak zorunda olan bir hizmette ise koruma hat üzerinde yapılır; ayrıntısı DDoS saldırısı ve korunma sayfasında.

Uyarı3389 (RDP) portunu tüm dünyaya açık bırakmak, sunucu güvenliğinde en pahalı hatalardan biridir; fidye yazılımı vakalarının çok büyük bir kısmı korumasız RDP üzerinden başlar. Uzak masaüstüne ihtiyacınız varsa portu ya kendi IP adresinize kısıtlayın ya da bir VPN arkasına alın. Aynı şey açık bırakılmış veritabanı portları için de geçerlidir.

Özetle#

Port, tek bir IP üzerindeki servisleri ayıran numaradır; anlam kazanması için protokolüyle birlikte düşünülmelidir. TCP bağlantı kurar ve kaybolan paketi yeniden gönderir, UDP ise hız uğruna bunlardan vazgeçer. Bu yüzden Minecraft Java 25565/TCP, Bedrock 19132/UDP kullanır — ve kural yazarken protokolü karıştırmak sessizce her şeyi bozar.

Port açmak iki katmanlı bir iştir: bir programın o portu dinlemesi ve güvenlik duvarının trafiği geçirmesi. Sorun yaşadığınızda önce ss -tulpn ile içeriden bakın, sonra nc veya Test-NetConnection ile dışarıdan deneyin. Adres sütununda 127.0.0.1 görüyorsanız hatayı güvenlik duvarında aramayı bırakın; servis yapılandırmasına gidin.

Son olarak şunu unutmayın: her açık port bir risktir. Yalnızca gerçekten gerekeni açın, yönetim portlarını kaynak IP ile kısıtlayın, veritabanı ve RCON gibi servisleri yerelde bırakın. Daha az kapı, daha az endişe.

Sıkça Sorulan Sorular#

Port nedir, ne işe yarar?

Port, bir sunucudaki farklı servisleri ayırt etmeye yarayan 0 ile 65535 arasında bir numaradır. IP adresi paketin hangi makineye gideceğini, port ise o makinede hangi programa teslim edileceğini belirler. Aynı sunucu üzerinde web sitesi 443, SSH 22, Minecraft 25565 numaralı portu dinleyebilir; hepsi tek IP üzerinden sorunsuz çalışır.

TCP ile UDP arasındaki fark nedir?

TCP önce bağlantı kurar, paketleri sıraya dizer ve kaybolanı yeniden gönderir; veri bütünlüğü kritikse (web, SSH, veritabanı, Minecraft Java) TCP kullanılır. UDP ise onay beklemez, paketi gönderir ve devam eder. Kayıp paket yeniden istenmediği için gecikme düşük kalır; sesli görüşme ve çoğu oyun protokolü bu yüzden UDP tercih eder.

Portun açık olup olmadığını nasıl kontrol ederim?

İki ayrı kontrol gerekir. Sunucunun içinden ss -tulpn | grep 25565 (Windows’ta netstat -ano | findstr :25565) komutuyla servisin dinlediğini doğrularsınız. Dışarıdan ise başka bir makineden nc -zv sunucu-ip 25565 ya da PowerShell’de Test-NetConnection sunucu-ip -Port 25565 çalıştırın. İkisi de olumluysa port gerçekten açıktır.

Minecraft sunucusu için hangi portu açmalıyım?

Java Edition için 25565/TCP, Bedrock Edition için 19132/UDP. Protokolü karıştırmak en sık yapılan hatadır: Bedrock için TCP kuralı açarsanız hiçbir oyuncu bağlanamaz. Query özelliğini açtıysanız 25565/UDP de gerekir. RCON portu olan 25575’i ise asla dışarıya açmayın, yalnızca sunucunun kendi içinden erişilebilir bırakın.

Port açtım ama yine bağlanamıyorum, neden?

Sırayla şunları kontrol edin: servis çalışıyor mu, doğru arayüzde mi dinliyor (0.0.0.0127.0.0.1 mi), protokol doğru mu, sunucu üzerindeki güvenlik duvarı kuralı gerçekten aktif mi, sağlayıcı tarafında ayrı bir ağ filtresi var mı. Ev bağlantısıysa modem yönlendirmesi ve CGNAT durumu da işin içine girer.

CGNAT nedir, port yönlendirmeyi neden engeller?

CGNAT (Carrier-Grade NAT), internet sağlayıcısının tek bir genel IP adresini yüzlerce aboneye paylaştırmasıdır. Bu durumda modeminizin WAN arayüzünde gerçek bir genel IP değil, 100.64.0.0/10 aralığında özel bir adres bulunur. Dışarıdan gelen bağlantının size ulaşacağı bir adres olmadığı için modemde yaptığınız yönlendirme hiçbir işe yaramaz.

Varsayılan portu değiştirmek güvenliği artırır mı?

Kısmen. SSH’ı 22 yerine başka bir porta almak otomatik tarama botlarının log dosyanızı doldurmasını büyük ölçüde keser, ama hedefli bir tarama portunuzu saniyeler içinde bulur. Bu yüzden port değiştirmeyi tek başına güvenlik önlemi saymayın; anahtarla kimlik doğrulama, parola girişinin kapatılması ve kaynak IP kısıtlaması asıl korumayı sağlar.

Kaç port açık bırakmak normaldir?

Sadece gerçekten kullanılanlar. Tipik bir oyun sunucusunda bu genelde üç kalemdir: yönetim için SSH ya da RDP (tercihen yalnızca kendi IP’nize açık), oyunun kendi portu ve varsa web arayüzü. Veritabanı, RCON ve panel portları dışarıya kapalı kalmalı; bunlara ihtiyaç duyduğunuzda SSH tüneli ya da VPN üzerinden erişin.

Altyapı ve Sistem Yönetimi — Tüm Rehberler#

  1. DDoS Saldırısı Nedir ve Nasıl Korunulur?
  2. Veri Merkezi (Data Center) Nedir?
  3. Sunucu Kiralarken Nelere Dikkat Edilmeli?
  4. Discord Bot Hosting ve 7/24 Çalıştırma
  5. Sunucu Yedekleme Stratejileri ve 3-2-1 Kuralı
  6. Sunucu Yönetimi İçin Linux Temel Komutları
  7. Sunucu İzleme ve Monitoring Rehberi
  8. SSH Anahtarı (Key) Oluşturma ve Sunucuya Ekleme
  9. Fail2ban Kurulumu ve Yapılandırması
  10. Linux’ta Cron Job ile Zamanlanmış Görev Oluşturma
  11. Port Nedir, Nasıl Açılır ve Nasıl Test Edilir?
  12. RAID Nedir ve Sunucuda Hangi RAID Seviyesi Kullanılır?

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön