Mesele nc Linux sistemlerinde, ağları kolay ve esnek bir şekilde yönetmenize yardımcı olan çok yönlü bir araç olarak bilinir. İster açık portları kontrol etmek, ister iki cihaz arasındaki bağlantıyı test etmek, hatta ağ üzerinden dosyaları hızlıca aktarmak isteyin, NC karmaşık araçlara ihtiyaç duymadan basit çözümler sunar. Onu diğerlerinden ayıran şey, basitliği ve hem ağ yöneticilerinin hem de bağlantı sorunlarını teşhis etmek isteyen kullanıcıların ilgisini çeken gelişmiş görevleri gerçekleştirebilme yeteneğidir. Aşağıdaki satırlarda, en önemli pratik kullanımlarını ve çeşitli ağ durumlarıyla başa çıkmayı nasıl kolaylaştırabileceğini öğreneceksiniz.
Netcat aracı ağ yöneticileri arasında oldukça popülerdir. Ancak, sıradan bir Linux kullanıcısı olarak günlük hayatınızda da çeşitli amaçlara hizmet edebilir. Araştırmam sırasında nc komutu için bazı harika kullanım örnekleri buldum.
6. Ağ bağlantıları oluşturun
nc komutunun yapabileceği en basit ve en önemli şeyle başlayacağım: iki cihaz arasında doğrudan bir TCP veya UDP bağlantısı kurmak. Bu, birçok gelişmiş kullanımın temel taşıdır.
İki Linux sisteminiz olduğunu varsayalım. Örnek olarak bir Ubuntu ve bir Linux Mint makinesi kullanacağım. Ubuntu sunucu veya dinleyici, Linux Mint ise istemci veya bağlayıcı olarak görev yapacak.
Öncelikle dinleyiciyi açın.
nc -l -p 12345
-l seçeneği dinleme modu içindir. -p seçeneği ise portu belirtmek içindir. Burada 12345 portunu kullanıyoruz, ancak halihazırda kullanımda olmadığı sürece başka herhangi bir portu da kullanabilirsiniz. Bu komutu çalıştırdıktan sonra cihazınız bağlantı için beklemeye devam edecektir.
Şimdi bağlantı aygıtından aşağıdakileri yapın:
nc ip_adresi port_numarası
IP adresini sunucunuzun IP adresiyle değiştirin. Port numarası, dinleyicide kullandığınız port numarası olacaktır. Benim durumumda durum şu şekilde:
nc 192.168.100.4 12345
Bu, iki cihaz arasında bir TCP bağlantısı oluşturur. Üstelik bu, yalnızca sunucunun veri gönderebildiği tek yönlü bir bağlantı değildir; her iki taraf da veri gönderip alabilir.
Bir UDP bağlantısı kurmak istiyorsanız, bunu -u seçeneğini kullanarak yapabilirsiniz. Dinleme aygıtında şunu çalıştırın:
nc -u -l -p 12345
İstemci makinesinde şunu çalıştırın:
nc -u 192.168.100.4 12345
UDP bağlantıları, TCP bağlantılarına göre daha az güvenilirdir. Ancak, hızın kritik olduğu ve veri kaybının kabul edilebilir olduğu durumlarda tercih edilirler.
5. Port Tarama
NC, tek bir bağlantı noktasına bağlanmanın yanı sıra, hangilerinin açık olduğunu görmek için tüm bir bağlantı noktası grubunu tarayabilir. Bu, sorun giderme veya hizmet envanteri oluşturma konusunda yardımcı olabilir. Bu nedenle NC, bazen ağ iletişiminin "İsviçre Çakısı" olarak anılır.
İstemciden sunucuda hangi TCP portlarının açık olduğunu öğrenmek istediğinizi varsayalım. Daha önce olduğu gibi sunucuda bir dinleyici oluşturun.
nc -l -p 12345
Daha sonra istemciden şunu çalıştırın:
nc -z -v 192.168.100.4 20-130
-z bayrağı, netcat'e Sıfır G/Ç modunu kullanmasını söyler. Bu, netcat'in veri göndermek yerine yalnızca dinleyen daemon'ları kontrol etmesi gerektiği anlamına gelir. -v bayrağı, sonuçları daha iyi görüntüleyen ayrıntılı modu etkinleştirir. Ayrıca, ilgilendiğimiz port aralığını 20 ile 130 arasında belirtiyoruz.
uyarı
Yalnızca sahip olduğunuz veya tarama izninizin olduğu sistemleri tarayın. Yetkisiz taramalar yasa dışı olabilir veya düşmanca olarak algılanabilir.
Demoda 80 numaralı port hariç neredeyse tüm portlar kapalı olduğu için bağlanmayı reddetti. Aynı şekilde UDP portlarını da tarayabilirsiniz.
4. Dosyaları aktarın
Netcat, FTP, SCP veya paylaşımlı klasörlere ihtiyaç duymadan dosyaları doğrudan TCP veya UDP üzerinden gönderebilir. Bu, özellikle başka yöntemler mevcut olmadığında hızlı aktarımlar için idealdir. Linux Mint'ten bir Ubuntu makinesine bir dosya gönderelim.
"NC File Transfer Test File" adını verdiğim test.txt adlı bir dosyam var. Öncelikle, dosyayı aktarmak istediğiniz cihazda bir dinleyici oluşturun. Bunu yaptığınızda, bağlantı çıktısını aşağıda gösterildiği gibi bir dosyaya yönlendirin.
nc -l -p 12345 > alınan.txt
Daha sonra göndericinin makinesinde dosya içeriğini nc bağlantınıza şu şekilde yönlendirin.
nc 192.168.100.4 12345
Transferin başarılı olduğunu doğrulamak için, dosyanın varlığını kontrol etmek üzere ls komutunu, ardından içeriğini okumak için cat komutunu kullanın. İşlemi tersine çevirip dosyaları ters yönde de gönderebilirsiniz. Tek yapmanız gereken, yukarıda gösterdiğim komutları kullanarak rolleri tersine çevirmek.
3. Bir web sunucusu oluşturun
Netcat, bir portu dinleyip bağlanan herkese ham HTML dosyaları gönderen basit bir HTTP sunucusu gibi çalışır. Elbette Apache veya Nginx'in yerini tutmaz. Ancak, hızlı demolar, hata ayıklama veya HTTP isteklerini incelemek için idealdir.
Öncelikle sunucu makinenizde statik bir HTML dosyası oluşturun (ben buna page.html diyorum). Benim için bu Ubuntu.
echo -e "HTTP/1.1 200 OK\r\nİçerik Türü: text/html\r\n\r\n Netcat'ten merhaba " > sayfa.html
Bu dosyaya HTTP durum satırını, Content-Type başlığını ve bazı basit HTML metinlerini ekledim. \r\n dizileri, HTTP'de başlıkları gövdeden ayırmak için gereklidir.
Şimdi aynı makinede netcat web sunucusunu çalıştırın:
doğru olsa da; nc -l -p 8080 yapın
Sunucunun her istekten sonra bile çalışır durumda kalması için burada bir while döngüsü kullanıyoruz. 8080 portunu dinliyor ve yanıt olarak bir HTML dosyası gönderiyoruz. Şimdi, istemci makineden (benim durumumda Linux Mint) bir web tarayıcısı açın ve IP adresini ve portunu belirterek statik HTML sayfasını ziyaret edin.
http://192.168.100.4:8080
Bir HTML sayfasını almak için curl komutunu da kullanabilirsiniz.
kıvrılma http://192.168.100.4:8080
2. Basit bir sohbet uygulaması oluşturun
Netcat, iki terminali birbirine bağlayarak birine yazdığınız her şeyin anında diğerinde görünmesini sağlar. Basit bir arayüz hilesiyle, onu anında sohbet aracına dönüştürebilirsiniz. Harici sohbet uygulamalarına gerek yoktur.
Bunu yapmak için, ilk bölümde açıklandığı gibi bir ağ bağlantısı oluşturmanız gerekir. Cihazlardan birinde bir dinleyici oluşturun:
nc -l -p 12345
Daha sonra başka bir cihazdan bağlanın.
nc 192.168.100.4 12345
Bağlantı kurulduktan sonra, bir cihazda istediğinizi yazabilirsiniz ve yazdıklarınız diğerinde görünecektir. Ardından, ikinci cihazda istediğinizi yazabilirsiniz ve yazdıklarınız ilkinde görünecektir.
Artık terminalde ileri geri yazarak bir bilgisayardan diğerine mesaj gönderebilirsiniz. İlgili mesajlara gönderenlerin adlarını da ekleyip ekleyemeyeceğimi görmek için bir yol bulmaya çalıştım. Bu şekilde, mesajı kimin gönderdiğini takip etmek daha kolay olurdu.
Bunu, gönderici adını echo ve while komutlarını kullanarak ekleyebilirsiniz. Kurulum şu şekilde: Sunucu makinesinde şunu çalıştırın:
mesajı okurken; "Ubuntu: $msg" yankısı yapın; tamamlandı | nc -l -p 12345
Musul makinesinde durum şöyle:
mesajı okurken; "LM: $msg" yankısı yapılır; tamamlandı | nc 192.168.100.4 12345
Yukarıdaki komut girdi bekler, önek ekler ve gönderir. Alıcı tarafta, önek gönderilmiş gibi görünür. İkiden fazla kullanıcı olsa bile, mesajları bu şekilde takip edebilirsiniz.
1. Ağ Sorun Giderme
Son olarak, bazı yaygın ağ sorunlarını gidermek için nc komutunu kullanabilirsiniz. Bir ağ arızası meydana geldiğinde, sorunun bir bağlantı sorunu, bir hizmet sorunu veya bir güvenlik duvarı sorunu olup olmadığını doğrulamanıza yardımcı olabilir. Bağlantı noktalarını test edebilir, hizmetleri simüle edebilir ve ilk yanıtları doğrulayabilir.
Bir uygulamanın yanıt vermediğini varsayalım; nc komutunu kullanarak onun portuna bağlanıp bağlanamadığınızı görebilirsiniz.
nc -zv 192.168.100.4 22
Çökme veya "Bağlantı reddedildi" mesajı görüntülenmesi durumunda port kapatılmış veya filtrelenmiştir.
Beklendiği gibi yanıt verip vermediğini görmek için hizmetle manuel olarak iletişim kurabilirsiniz. Örneğin, yerel bir HTTP hizmetinin yanıtını kontrol edin.
nc 192.168.100.4 8080
Hizmet başarılı olursa, bir HTTP yanıt başlığı ve muhtemelen biraz HTML kodu gönderecektir. Bu, tarayıcı olmadan düzgün çalışmayan web uygulamalarında hata ayıklamak için idealdir.
Bir uygulamanın bir porta bağlanabildiğinden ancak doğru verileri göndermediğinden şüpheleniyorsanız, hizmet gibi davranıp uygulamanın gönderdiklerini yakalayabilirsiniz. Bu, özel istemci/sunucu protokollerinde hata ayıklamak için kullanışlıdır. Netcat kullanarak bu küçük testleri hızlıca çalıştırabilir ve ağınızın nerede hata verdiğini ve nasıl düzelteceğinizi öğrenebilirsiniz.
Netcat ile yapabileceğiniz çok şey var. İlginizi çekerse kullanım kılavuzuna göz atabilirsiniz. nc'nin resmi kullanıcısı. Keşfetmenizi önerdiğimiz başka birçok Linux ağ komutu var.
nc komutu yalnızca geleneksel bir Linux aracı değil; ağları teşhis etmenin ve cihazlar arasındaki bağlantıların bütünlüğünü sağlamanın akıllı bir yoludur. Kullanım kolaylığı ve çok sayıda özelliği, onu pratik ve güvenilir bir ağ tarama aracı arayanlar için ideal bir seçim haline getirir. Deneyin ve günlük bağlantı sorunlarıyla uğraşırken nasıl çok fazla zaman ve emek tasarrufu sağlayabileceğini keşfedin.











