Sobes.tech
Junior

Kuidas kontrollida, kas port on avatud kaugel või kohaliku hosti peal?

sobes.tech AI

Vastus AI-lt

Porti avamise kontrollimiseks kaug- või kohaliku hosti puhul saab kasutada järgmisi meetodeid:

  1. netcat (nc): Üldine tööriist võrguliikluse jaoks.

    • Kohaliku hosti jaoks:
      nc -zv localhost <port>
      
    • Kaug- või hosti jaoks:
      nc -zv <kaug-ühendus> <port>
      

    Valikud -z (null-I/O režiim) ja -v (üksikasjalik) kasutatakse andmete saatmata skaneerimiseks ja üksikasjaliku teabe kuvamiseks.

  2. telnet: Kaugjuhtimise protokoll, mida saab kasutada ühenduse kontrollimiseks määratud pordil:

    • Kohaliku hosti jaoks:
      telnet localhost <port>
      
    • Kaug- või hosti jaoks:
      telnet <kaug-ühendus> <port>
      

    Kui ühendus on loodud (tavaliselt ilmub käsk või tühi rida), on port avatud. Sulgege Ctrl+], siis quit ja Enter.

  3. nmap: Võimas pordi skanner. Nõuab installimist:

    • Kohaliku hosti jaoks:
      nmap -p <port> localhost
      
    • Kaug- või hosti jaoks:
      nmap -p <port> <kaug-ühendus>
      

    Väljund näitab pordi olekut: open, closed või filtered.

  4. < /dev/tcp või < /dev/udp (Bash): Bashis saab kasutada failide kirjeldajaid TCP või UDP ühenduste loomiseks:

    • Kohaliku hosti jaoks (TCP):
      timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> on avatud" || echo "Port <port> on suletud"
      
    • Kaug- või hosti jaoks (TCP):
      timeout 1 bash -c "cat < /dev/tcp/<kaug-ühendus>/<port>" 2>/dev/null && echo "Port <port> on avatud" || echo "Port <port> on suletud"
      

    timeout kasutatakse selleks, et vältida hangumist, kui port on suletud. 2>/dev/null peidab veateateid. See meetod ei tööta UDP puhul.

  5. Python: Soketite kasutamine kontrollimiseks:

    import socket
    
    def check_port(host, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)  # Aja piirangu määramine
        try:
            s.connect((host, port))
            print(f"Port {port} on {host} avatud")
        except (socket.timeout, ConnectionRefusedError):
            print(f"Port {port} on {host} suletud või filtreeritud")
        finally:
            s.close()
    
    # Kasutamise näide
    check_port("localhost", 80)       # Kohaliku hosti kontroll
    check_port("google.com", 443)  # Kaug- või hosti kontroll
    

Valik sõltub saadaval olevatest tööriistadest, operatsioonisüsteemist ja ülesande spetsiifikast. netcat ja nmap on kõige paindlikumad ja informatiivsemad tööriistad.