Site Overlay

PowerShell ile Port Açma ve Bağlantı Testi

🔌 PowerShell ile Port Açma ve Bağlantı Testi

Bu örnek, PowerShell’de [System.Net.Sockets.TcpListener] sınıfını kullanarak TCP port 80 üzerinde bir dinleyici (listener) oluşturmayı ve gelen bağlantıları yakalamayı gösterir.

⚙️ 1. TCP Listener Oluştur ve Başlat

Aşağıdaki güncellenmiş kod port 80 üzerinde dinleme yapar. Gelen bağlantının IP adresini ve port bilgisini konsola yazdırır. Ayrıca oluşabilecek hataları yakalar ve bağlantıyı kapatır.

try {
    $listener = [System.Net.Sockets.TcpListener]::new(
        [System.Net.IPAddress]::Any,
        80
    )

    $listener.Start()

    Write-Host "Dinleniyor: Port 80..." -ForegroundColor Green

    while ($true) {
        $client = $listener.AcceptTcpClient()

        Write-Host "Bağlantı alındı: $($client.Client.RemoteEndPoint)" -ForegroundColor Cyan

        $client.Close()
    }
}
catch {
    Write-Host "Hata: $($_.Exception.Message)" -ForegroundColor Red
}
finally {
    if ($listener) {
        $listener.Stop()
    }
}

📝 Açıklamalar

  • TcpListener: TCP bağlantılarını dinlemek için kullanılır.
  • [System.Net.IPAddress]::Any: Bilgisayarın kullanılabilir ağ arayüzlerinden gelen bağlantıları kabul eder.
  • $listener.Start(): TCP dinleyicisini başlatır ve belirtilen portu dinlemeye başlar.
  • AcceptTcpClient(): Gelen TCP bağlantısını kabul eder.
  • RemoteEndPoint: Bağlanan istemcinin IP adresi ve kaynak port bilgisini gösterir.
  • $client.Close(): Kabul edilen bağlantıyı kapatır.
  • try / catch: Port kullanımda olduğunda veya başka bir hata oluştuğunda hata mesajını gösterir.
  • finally: Script sonlandığında listener’ın düzgün şekilde durdurulmasını sağlar.

🧪 2. Bağlantı Testi

Listener çalışırken aynı bilgisayardan bağlantıyı test etmek için aşağıdaki PowerShell komutunu kullanabilirsiniz:

Test-NetConnection -ComputerName localhost -Port 80

Başarılı bağlantıda sonuç bölümünde TcpTestSucceeded : True görünmelidir.

Listener konsolunda da buna benzer bir çıktı görebilirsiniz:

Dinleniyor: Port 80...
Bağlantı alındı: 127.0.0.1:xxxxx

🌐 3. Aynı Ağdaki Başka Cihazdan Test

Bilgisayarın yerel IP adresini öğrenmek için:

ipconfig

Örneğin bilgisayarınızın IP adresi 192.168.1.100 ise başka bir Windows bilgisayardan:

Test-NetConnection -ComputerName 192.168.1.100 -Port 80

Başarılı olması durumunda:

TcptestSucceeded : True

şeklinde bir sonuç alınır. Windows Güvenlik Duvarı port 80’e gelen bağlantıları engelliyorsa ayrıca güvenlik duvarı kuralı oluşturmanız gerekebilir.

⚠️ 4. Port 80 Kullanımda Hatası

Port 80 başka bir program tarafından kullanılıyorsa listener başlatılamaz. Portu kullanan bağlantıları kontrol etmek için:

Get-NetTCPConnection -LocalPort 80 -ErrorAction SilentlyContinue

Test amacıyla farklı bir port kullanmak isterseniz örneğin 8080 portunu kullanabilirsiniz:

$listener = [System.Net.Sockets.TcpListener]::new(
    [System.Net.IPAddress]::Any,
    8080
)

💡 Özet

Bu script, PowerShell üzerinden TCP port 80’i dinleyen basit bir TCP listener oluşturur. Gelen bağlantıları kabul eder, bağlantı yapan cihazın adresini konsola yazdırır ve ardından bağlantıyı kapatır.

Port 80 için PowerShell’i yönetici olarak çalıştırmanız gerekebilir. Port başka bir uygulama tarafından kullanılıyorsa 8080 gibi farklı bir port tercih edilebilir.

arif akyuz
Arif Akyüz

image
Başka cihazda görüntüle
Arif Akyüz Sistem Network Yöneticisi ve Siber Güvenlik Uzmanı
Arif Akyüz Sistem Network Yöneticisi ve Siber Güvenlik Uzmanı

Arif Akyüz
Bilgi Teknolojileri
Sistem Network Yöneticisi
ve Siber Güvenlik Uzmanı
info@arifakyuz.com

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Author: Arif Akyüz

Arif Akyüz - Siber Güvenlik Uzmanı ve Dijital Dönüşüm Lideri 15 yılı aşkın süredir bilişim sektöründe, özellikle siber güvenlik ve dijital dönüşüm alanlarında hizmet veren bir uzmanım. Hem stratejik hem de teknik düzeyde çözümler sunarak organizasyonların güvenlik altyapılarını güçlendiriyor ve dijitalleşme süreçlerini yönetiyorum.