Skip to main content

🛰️ Netcat (nc) Komutunu Kullanarak TCP ve UDP Bağlantılarını Test Etme Rehberi

🔍 Bu Rehberde Ne Öğreneceksiniz?

Bu rehber, Linux’un ağ iletişiminde çok yönlü aracı olan Netcat (nc) komutunda uzmanlaşmanızı sağlar.
TCP ve UDP bağlantı testlerinden başlayarak, Netcat’i bir istemci (client) veya sunucu (server) olarak nasıl kullanacağınızı öğreneceksiniz.
Ayrıca port tarama, dosya transferi ve gerçek zamanlı hata ayıklama senaryolarıyla ağ sorunlarını hızlıca çözme becerisi kazanacaksınız.


🧠 Aşama 1 – İçerik Analizi (Teknik Özet)

Ana Teknik Konu:
Linux’ta Netcat (nc) aracını kullanarak TCP/UDP bağlantılarını kurma, test etme ve sorun giderme.

Çözülen Problem:
Ağ hizmetlerinin kullanılabilirliğini ve port durumlarını manuel olarak test etme ihtiyacı.
Ayrıca dosya transferi ve geçici ağ dinleme için pratik bir çözüm sağlar.

İzlenen Adımlar:

  1. Netcat’in temel söz dizimi ve seçeneklerini (-u, -z, -v, -l, -n) öğrenme
  2. Farklı sürümleri (netcat-openbsd, nc, ncat) anlama
  3. Port tarama ve filtreleme işlemleri
  4. İstemci-sunucu modunda iletişim kurma
  5. HTTP/SMTP başlıklarını manuel göndererek hata ayıklama
  6. Dosya/dizin transferi (tar + piping)
  7. UDP sessizliğini ve bağlantı zaman aşımını yorumlama

⚙️ NETCAT Komutuna Giriş

Netcat (nc), TCP veya UDP protokolleriyle doğrudan bağlantı kurmanı sağlayan çok yönlü bir ağ aracıdır.
Geliştiriciler ve sistem yöneticileri için güçlü bir test ve teşhis aracıdır.

🧩 Temel Söz Dizimi

Varsayılan olarak Netcat bir TCP bağlantısı kurar.

# TCP bağlantısı başlatma
nc [seçenekler] hedef_ana_bilgisayar port

🔸 UDP Modu


# UDP bağlantısı başlatma
nc -u hedef_ana_bilgisayar port

🔸 Port Aralığı Tarama


# Port aralığı tarama
nc hedef_ana_bilgisayar baslangic_portu-bitis_portu

ℹ️ Bilgi: Çoğu Linux sisteminde nc komutu, kurulu Netcat sürümüne (ör. netcat-openbsd veya ncat) bir sembolik bağlantıdır.


🧱 Netcat Sürümleri Arasındaki Farklar

SürümStandart DağıtımÖnemli Özellikler
netcat-openbsdUbuntu, Debian-w (timeout), -z (scan-only), -v (verbose)
ncatCentOS, Fedora, RHEL--ssl, --proxy, --broker
ncAlias (takma ad)Mevcut Netcat sürümünü işaret eder

🔍 1. Netcat ile Port Tarama

Netcat, basit ama etkili bir port tarayıcıdır.


# 1-1000 port aralığını tara ve ayrıntılı çıktı ver
nc -z -v rabisu.cloud 1-1000

DNS çözümlemesini atlamak için:


nc -z -n -v 198.51.100.1 1-1000

Yalnızca başarılı bağlantıları listelemek için:


nc -z -n -v 198.51.100.1 1-1000 2>&1 | grep succeeded

Açıklama: 2>&1 hataları standart çıktıya yönlendirir, böylece grep yalnızca başarılı bağlantıları filtreler.


💬 2. İki Yönlü İletişim Kurma (Client/Server)

🖥️ Sunucu (Dinleyici)


nc -l 4444

💻 İstemci


nc tr1-node01 4444

Bağlantı kurulduğunda iki taraf arasında anlık mesajlaşma sağlanır. Oturumu bitirmek için CTRL + D kombinasyonunu kullanın.


🧰 3. Gerçek Zamanlı Hata Ayıklama (Debugging)

✉️ Servis Banner’ını Görüntüleme


nc mail.rabisu.cloud 25

SMTP sunucusunun versiyonunu ve erişilebilirliğini gösterir.

🌐 Manuel HTTP İsteği Gönderme


printf "GET / HTTP/1.1\r\nHost: rabisu.cloud\r\n\r\n" | nc rabisu.cloud 80

Bu komut, ham HTTP yanıtını (örneğin 200 OK) terminalde görüntüler.


💾 4. Netcat ile Dosya ve Dizin Transferi

📥 Alıcı (Dinleyici)


nc -l 4444 > alici_dosya.txt

📤 Gönderici


nc tr1-node01 4444 < giden_dosya.txt

📦 Dizin Transferi (tar ile)

Alıcı:


nc -l 4444 | tar xzvf -

Gönderici:


tar -czf - * | nc tr1-node01 4444

🤔 5. UDP İletişimi ve Sorun Giderme

UDP sessizdir, yani başarı ya da hata mesajı dönmez. Bu normal bir durumdur.


nc -u dns.rabisu.cloud 53

UDP trafiğini izlemek için:


sudo tcpdump -n udp port 53

💡 SSS (Sıkça Sorulan Sorular)

1. Netcat Telnet’ten neden daha iyi?

Hem TCP hem de UDP’yi destekler.

Komut yönlendirme (<, >, |) ile script’lerde kolayca kullanılabilir.

Telnet modern sistemlerde artık önerilmez.

2. Netcat üretim ortamında güvenli mi?

Hayır. Netcat şifreleme ve kimlik doğrulama yapmaz. Güvenli bağlantılar için ncat --ssl veya socat kullanın.

3. Web sayfasını döngüde yayınlamak mümkün mü?


while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | nc -l 8888; done

4. “Address already in use” hatası alırsam?


sudo lsof -i :4444
sudo kill -9 <PID>

Alternatif olarak farklı bir port (ör. 4445) seçin.

🚀 Sonuç Artık Netcat ile TCP ve UDP bağlantılarını test edebilir, port tarayabilir, dosya aktarabilir ve servisleri manuel olarak debug edebilirsin. Basitliği ve esnekliğiyle, Netcat her Linux kullanıcısının araç kutusunda olmalı.

🧩 Hemen Rabisu Bulut sanal sunucularında deneyerek ağ sorunlarını pratik şekilde çözebilirsin.