“Bu port açık mı?”, “1433’ü kim tutuyor?”, “Sunucuya kim bağlı?” — sahada en sık duyduğumuz sorular bunlar. Windows’ta bu soruların cevabı için ekstra bir araç kurmanıza gerek yok: netstat ve PowerShell’deki Get-NetTCPConnection işin büyük kısmını halleder. Bu yazıda ikisini de bol örnekle, gerçek senaryolar üzerinden anlatıyoruz.
Port “açık” derken neyi kastediyoruz?
Bir port, bilgisayarınızdaki bir programın ağdan gelen bağlantıları beklediği kapı numarasıdır. Web sunucusu 80 ve 443’te bekler, uzak masaüstü 3389’da, SQL Server 1433’te. Bir portun “açık” olması için iki şey aynı anda doğru olmalı:
netstat size ilk maddeyi gösterir. İkinci maddeyi başka bir bilgisayardan test etmeniz gerekir; yazının sonunda ona da geliyoruz.
netstat çıktısındaki durumlar
Komutları çalıştırınca en sağda göreceğiniz State sütunu aslında hikâyenin özeti:
| Durum | Anlamı | Ne zaman görürsünüz? |
|---|---|---|
| LISTENING | Port açık, bağlantı bekliyor. | Çalışan bir servis: SQL Server, IIS, Logo lisans servisi… |
| ESTABLISHED | Kurulu, aktif bir bağlantı var. | Açık bir RDP oturumu, tarayıcının bir siteye bağlantısı. |
| TIME_WAIT | Bağlantı kapandı, Windows kısa süre daha bekliyor. | Yoğun web sunucularında yüzlercesi olabilir, normaldir. |
| CLOSE_WAIT | Karşı taraf kapattı, buradaki uygulama hâlâ kapatmadı. | Çok sayıda birikmişse uygulamada bağlantı sızıntısı olabilir. |
| SYN_SENT | Bağlantı isteği gönderildi, cevap bekleniyor. | Ulaşılamayan bir sunucuya bağlanmaya çalışan program. |
netstat ile başlayalım
Komut İstemi’ni (CMD) açın. Parametre vermeden çalıştırırsanız netstat yalnızca kurulu bağlantıları listeler ve adresleri isme çevirmeye çalışır; bu hem yavaş hem eksiktir. Sahada işe yarayan kombinasyon şu:
netstat -anoHarflerin anlamı:
Örnek bir çıktı şöyle görünür:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 956
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 3120
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1284
TCP 0.0.0.0:32070 0.0.0.0:0 LISTENING 4468
TCP 192.168.1.10:3389 192.168.1.57:51422 ESTABLISHED 1284
TCP 192.168.1.10:1433 192.168.1.23:49811 ESTABLISHED 3120
UDP 0.0.0.0:123 *:* 1120Okuma şekli: Local Address sütunundaki iki noktadan sonrası port numarası. 0.0.0.0:1433 “bu makinenin tüm ağ kartlarında 1433 dinleniyor” demek; 127.0.0.1:1433 görürseniz servis yalnızca kendi içinden bağlantı kabul ediyor, ağdan kimse erişemez. Tam liste için netstat /? yazabilirsiniz.
İşe yarayan netstat filtreleri
Ham liste yüzlerce satır olabilir. CMD’nin find ve findstr komutlarıyla tam istediğiniz satırları süzün.
Yalnızca dinlenen (açık) portlar
netstat -ano | find /i "listening"Bir sunucuda “dışarıya hangi kapılar açık?” sorusunun tek satırlık cevabı. Yeni kurduğunuz bir makinede beklemediğiniz bir port görüyorsanız PID’sinden yola çıkıp kim olduğunu bulun.
Kurulu bağlantılar: şu an kim bağlı?
netstat -ano | find /i "established"Foreign Address sütunu karşı tarafın IP’sini verir. Terminal sunucuda “kaç kişi bağlı?” diye bakmak için 3389 ile birleştirin:
netstat -ano | findstr :3389 | find /i "established"Belirli bir port kim tarafından kullanılıyor?
En klasik soru. Port numarasının başına iki nokta koyarak arayın; böylece 80 ararken 8080 ya da 1800’ü de yakalamazsınız:
netstat -ano | findstr :80
netstat -ano | findstr :443Satırın sonundaki PID’yi Görev Yöneticisi → Ayrıntılar sekmesinde bulabilirsiniz; ama komut satırından çıkmadan bakmak daha hızlı:
tasklist /FI "PID eq 3120"Görüntü Adı PID Oturum Adı Oturum# Bellek Kullanımı
========================= ======== ================ =========== ============
sqlservr.exe 3120 Services 0 412.560 KYa da yönetici CMD’de -b ekleyip program adını netstat’ın kendisinden alın:
netstat -abno | findstr :1433Bir portu canlı izlemek
Komutun sonuna saniye yazarsanız netstat o aralıkla yeniden çalışır. Servis ayağa kalkarken ya da bağlantı kopmalarını izlerken çok işe yarar; Ctrl+C ile çıkarsınız:
netstat -ano 5 | findstr :32070Sonucu dosyaya yazdırmak
Uzaktan destek verirken ya da bir sorunu kayda geçirmek için çıktıyı dosyaya yönlendirin:
netstat -abno > C:\portlar.txt
netstat -ano | find /i "listening" > C:\dinlenen-portlar.txtPowerShell ile daha okunaklı liste
Windows 8 / Server 2012 ve sonrasında PowerShell’in Get-NetTCPConnection komutu aynı bilgiyi nesne olarak verir; sıralamak, süzmek ve işlem adını yanına yazmak çok daha kolay.
Dinlenen portları port numarasına göre sıralı listeleyin:
Get-NetTCPConnection -State Listen |
Sort-Object LocalPort |
Format-Table LocalAddress, LocalPort, OwningProcess -AutoSizePID yerine doğrudan işlem adını görmek isterseniz küçük bir hesaplanmış sütun ekleyin:
Get-NetTCPConnection -State Listen |
Select-Object LocalAddress, LocalPort,
@{Name = 'Process'; Expression = { (Get-Process -Id $_.OwningProcess).ProcessName }} |
Sort-Object LocalPort |
Format-Table -AutoSizeTek bir port için “kim tutuyor?” sorusu:
Get-NetTCPConnection -LocalPort 1433 |
Select-Object LocalAddress, LocalPort, State, RemoteAddress,
@{Name = 'Process'; Expression = { (Get-Process -Id $_.OwningProcess).ProcessName }}Kurulu bağlantıları karşı IP’ye göre gruplayıp “en çok kim bağlı?” diye bakmak:
Get-NetTCPConnection -State Established |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object Count, Name -First 10UDP tarafı için komut ayrı: Get-NetUDPEndpoint. DNS (53), NTP (123) ya da UniFi keşif (10001) gibi UDP servisleri burada görünür:
Get-NetUDPEndpoint | Sort-Object LocalPort | Format-Table LocalAddress, LocalPort, OwningProcess -AutoSizeSahadan dört senaryo
1. “Logo açılmıyor: Can not connect to LOGO SERVER at 32070”
Logo lisans servisi 32070 portunu dinler. Sunucuda önce servisin gerçekten ayakta olup olmadığına bakın:
netstat -ano | findstr :32070Satır hiç yoksa servis çalışmıyor demektir; services.msc’den başlatın. 0.0.0.0:32070 LISTENING görüyorsanız servis sağlam, sorun büyük ihtimalle güvenlik duvarında ya da istemcinin sunucu adını çözememesinde. Bu hatanın adım adım çözümünü ayrı bir yazıda anlattık.
2. “SQL Server’a ağdan bağlanamıyorum”
netstat -ano | findstr :1433Üç olası sonuç var ve her biri farklı bir yere işaret eder:
3. “IIS başlamıyor: 80 portu kullanımda”
netstat -abno | findstr :80Genellikle karşınıza Skype, httpd.exe (XAMPP/Apache) ya da System (HTTP.sys üzerinden çalışan başka bir servis, ör. SQL Reporting Services) çıkar. Çakışan uygulamayı durdurun ya da portunu değiştirin.
4. “Sunucu yavaş, dışarıya sürekli bağlantı var”
netstat -abno | find /i "established"Tanımadığınız bir programın onlarca dış IP’ye bağlantı kurduğunu görüyorsanız durumu ciddiye alın: madencilik yazılımı, uzaktan erişim truva atı ya da şifrelenmiş veri sızdıran bir zararlı olabilir. Program adını ve dış IP’leri not edin, makineyi ağdan ayırın, güvenlik ekibinizle paylaşın.
Karşı taraftan test: port açık ama ulaşamıyorum
netstat sunucuda LISTENING gösteriyor ama istemci bağlanamıyorsa sorun yolda bir yerdedir. İstemciden şu komutla kapıyı çalın:
Test-NetConnection sunucu01 -Port 1433ComputerName : sunucu01
RemoteAddress : 192.168.1.10
RemotePort : 1433
InterfaceAlias : Ethernet
SourceAddress : 192.168.1.57
TcpTestSucceeded : TrueTcpTestSucceeded : False dönüyorsa ve sunucuda port dinleniyorsa sırayla şunlara bakın: sunucudaki Windows Güvenlik Duvarı gelen kuralı, üçüncü parti antivirüsün kendi duvarı, aradaki switch/firewall kuralları ve istemcinin doğru IP’ye gittiği (ping -a ya da nslookup sunucu01). Eski alışkanlıkla telnet sunucu01 1433 kullanacaksanız Telnet istemcisinin önce kurulması gerekir.
Grafik arayüz isteyenler için
Sık karşılaşılan portlar
Listede gördüğünüz numarayı hızlı eşleştirmek için sahada en çok rastladığımız portlar:
| Port | Servis | Not |
|---|---|---|
| 80 / 443 | HTTP / HTTPS | Web sunucuları, birçok yönetim paneli. |
| 135, 445 | RPC, SMB dosya paylaşımı | Her Windows’ta açıktır; internete asla açılmaz. |
| 3389 | Uzak Masaüstü (RDP) | Dışa açılacaksa VPN arkasında olmalı. |
| 1433 / 1434 | SQL Server / SQL Browser (UDP) | Adlandırılmış örnekler dinamik port kullanabilir. |
| 32070 | Logo lisans servisi | Logo GO / Tiger istemcileri bu porta bağlanır. |
| 25, 587, 993 | SMTP, SMTP gönderim, IMAPS | Posta sunucuları ve istemcileri. |
| 53, 123 (UDP) | DNS, NTP | Domain Controller’larda görmek normaldir. |
| 8080, 8443 | Alternatif HTTP/HTTPS | UniFi, Tomcat, proxy gibi uygulamalar. |