Sobes.tech
Junior

Uzoq yoki mahalliy hostda port ochiq yoki yopiq ekanligini qanday tekshirish mumkin?

sobes.tech AI

AIdan javob

Uzoq yoki mahalliy hostda ochiq portni tekshirish uchun quyidagi usullardan foydalanish mumkin:

  1. netcat (nc): Tarmoq ulanishlari bilan ishlash uchun universal vosita.

    • Mahalliy host:
      nc -zv localhost <port>
      
    • Uzoq host:
      nc -zv <uzoq_host> <port>
      

    -z (nol-I/O rejimi) va -v (batafsil) opsiyalari, ma'lumot yubormasdan skanerlash va batafsil ma'lumotlarni ko'rsatish uchun ishlatiladi.

  2. telnet: Uzoqdan boshqarish protokoli, belgilangan portda ulanishni tekshirish uchun ishlatilishi mumkin.

    • Mahalliy host:
      telnet localhost <port>
      
    • Uzoq host:
      telnet <uzoq_host> <port>
      

    Agar ulanish o'rnatilsa (odatda taklif yoki bo'sh satr paydo bo'lsa), port ochiq. Yopish uchun Ctrl+], so'ngra quit va Enter ni bosing.

  3. nmap: Kuchli port skaneri. O'rnatishni talab qiladi.

    • Mahalliy host:
      nmap -p <port> localhost
      
    • Uzoq host:
      nmap -p <port> <uzoq_host>
      

    Chiqarish port holatini ko'rsatadi: open, closed yoki filtered.

  4. < /dev/tcp yoki < /dev/udp (Bashda): Bashda fayl deskriptorlaridan foydalanib TCP yoki UDP ulanishlarini yaratish mumkin.

    • Mahalliy host (TCP):
      timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> ochiq" || echo "Port <port> yopiq"
      
    • Uzoq host (TCP):
      timeout 1 bash -c "cat < /dev/tcp/<uzoq_host>/<port>" 2>/dev/null && echo "Port <port> ochiq" || echo "Port <port> yopiq"
      

    timeout port yopiq bo'lsa, to'xtashni oldini olish uchun ishlatiladi. 2>/dev/null xatoliklarni yashiradi. Bu usul UDP uchun ishlamaydi.

  5. Python: Soketlar yordamida tekshirish.

    import socket
    
    def check_port(host, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)  # Timeoutni o'rnatish
        try:
            s.connect((host, port))
            print(f"{host}dagi {port} port ochiq")
        except (socket.timeout, ConnectionRefusedError):
            print(f"{host}dagi {port} port yopiq yoki filtrlangan")
        finally:
            s.close()
    
    # Misol uchun foydalanish
    check_port("localhost", 80)       # Mahalliy hostni tekshirish
    check_port("google.com", 443)  # Uzoq hostni tekshirish
    

Usul tanlash mavjud vositalar, operatsion tizim va vazifaning xususiyatlariga bog'liq. netcat va nmap eng moslashuvchan va ma'lumot beruvchi vositalardan hisoblanadi.