Sobes.tech
Junior

Uzak veya yerel ana bilgisayarda portun açık olup olmadığını nasıl kontrol edilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Uzak veya yerel bir ana bilgisayarda açık olan bir bağlantı noktasını kontrol etmek için aşağıdaki yöntemler kullanılabilir:

  1. netcat (nc): Ağ bağlantılarıyla çalışmak için evrensel araç.

    • Yerel ana bilgisayar:
      nc -zv localhost <port>
      
    • Uzak ana bilgisayar:
      nc -zv <uzak_ana_bilgisayar> <port>
      

    -z (sıfır-I/O modu) ve -v (ayrıntılı) seçenekleri, veri göndermeden tarama yapmak ve detaylı bilgi göstermek için kullanılır.

  2. telnet: Uzaktan yönetim protokolü, belirtilen bağlantı noktasında bağlantıyı kontrol etmek için kullanılabilir.

    • Yerel ana bilgisayar:
      telnet localhost <port>
      
    • Uzak ana bilgisayar:
      telnet <uzak_ana_bilgisayar> <port>
      

    Bağlantı kurulursa (genellikle bir davet veya boş bir satır görünür), bağlantı noktası açıktır. Kapatmak için Ctrl+], ardından quit ve Enter tuşlarına basın.

  3. nmap: Güçlü bir bağlantı noktası tarayıcı. Kurulum gerektirir.

    • Yerel ana bilgisayar:
      nmap -p <port> localhost
      
    • Uzak ana bilgisayar:
      nmap -p <port> <uzak_ana_bilgisayar>
      

    Çıktı, bağlantı noktası durumunu gösterecektir: open, closed veya filtered.

  4. < /dev/tcp veya < /dev/udp (Bash'te): Bash'te, dosya tanıtıcıları kullanılarak TCP veya UDP bağlantıları oluşturulabilir.

    • Yerel ana bilgisayar (TCP):
      timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> açık" || echo "Port <port> kapalı"
      
    • Uzak ana bilgisayar (TCP):
      timeout 1 bash -c "cat < /dev/tcp/<uzak_ana_bilgisayar>/<port>" 2>/dev/null && echo "Port <port> açık" || echo "Port <port> kapalı"
      

    timeout, port kapalıysa takılmayı önlemek için kullanılır. 2>/dev/null, hata çıktılarını gizler. Bu yöntem UDP için çalışmaz.

  5. Python: Soketler kullanılarak kontrol.

    import socket
    
    def check_port(host, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)  # Zaman aşımı ayarla
        try:
            s.connect((host, port))
            print(f"{host} üzerindeki {port} portu açık")
        except (socket.timeout, ConnectionRefusedError):
            print(f"{host} üzerindeki {port} portu kapalı veya filtrelenmiş")
        finally:
            s.close()
    
    # Kullanım örneği
    check_port("localhost", 80)       # Yerel ana bilgisayarı kontrol et
    check_port("google.com", 443)  # Uzak ana bilgisayarı kontrol et
    

Yöntem seçimi, kullanılabilir araçlara, işletim sistemine ve görevin özelliklerine bağlıdır. netcat ve nmap, en esnek ve bilgilendirici araçlardan bazılarıdır.