Πώς να ελέγξετε αν μια θύρα είναι ανοιχτή σε απομακρυσμένο ή τοπικό υπολογιστή;
sobes.tech AI
Απάντηση από AI
Για τον έλεγχο αν μια ανοιχτή θύρα είναι σε έναν απομακρυσμένο ή τοπικό υπολογιστή, μπορείτε να χρησιμοποιήσετε τις ακόλουθες μεθόδους:
-
netcat(nc): Ένα καθολικό εργαλείο για εργασία με δικτυακές συνδέσεις.- Τοπικός υπολογιστής:
nc -zv localhost <θύρα> - Απομακρυσμένος υπολογιστής:
nc -zv <απομακρυσμένος_υπολογιστής> <θύρα>
Οι επιλογές
-z(λειτουργία μηδέν-Ε/Α) και-v(λεπτομερής) χρησιμοποιούνται για σάρωση χωρίς αποστολή δεδομένων και για εμφάνιση λεπτομερών πληροφοριών. - Τοπικός υπολογιστής:
-
telnet: Πρωτόκολλο απομακρυσμένης διαχείρισης, που μπορεί να χρησιμοποιηθεί για τον έλεγχο της σύνδεσης σε μια καθορισμένη θύρα.- Τοπικός υπολογιστής:
telnet localhost <θύρα> - Απομακρυσμένος υπολογιστής:
telnet <απομακρυσμένος_υπολογιστής> <θύρα>
Αν η σύνδεση εγκατασταθεί (συνήθως εμφανίζεται μια πρόσκληση ή μια κενή γραμμή), η θύρα είναι ανοιχτή. Μπορείτε να την κλείσετε πατώντας
Ctrl+], στη συνέχειαquitκαι Enter. - Τοπικός υπολογιστής:
-
nmap: Ένας ισχυρός σαρωτής θυρών. Απαιτεί εγκατάσταση.- Τοπικός υπολογιστής:
nmap -p <θύρα> localhost - Απομακρυσμένος υπολογιστής:
nmap -p <θύρα> <απομακρυσμένος_υπολογιστής>
Η έξοδος θα δείξει την κατάσταση της θύρας:
open,closedήfiltered. - Τοπικός υπολογιστής:
-
< /dev/tcpή< /dev/udp(στο Bash): Στο Bash, μπορείτε να χρησιμοποιήσετε περιγραφείς αρχείων για να δημιουργήσετε TCP ή UDP συνδέσεις.- Τοπικός υπολογιστής (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<θύρα>" 2>/dev/null && echo "Η θύρα <θύρα> είναι ανοιχτή" || echo "Η θύρα <θύρα> είναι κλειστή" - Απομακρυσμένος υπολογιστής (TCP):
timeout 1 bash -c "cat < /dev/tcp/<απομακρυσμένος_υπολογιστής>/<θύρα>" 2>/dev/null && echo "Η θύρα <θύρα> είναι ανοιχτή" || echo "Η θύρα <θύρα> είναι κλειστή"
Το
timeoutχρησιμοποιείται για την αποφυγή μπλοκαρίσματος αν η θύρα είναι κλειστή. Το2>/dev/nullκρύβει τα σφάλματα. Αυτή η μέθοδος δεν λειτουργεί για UDP. - Τοπικός υπολογιστής (TCP):
-
Python: Χρήση socket για έλεγχο.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Ορισμός χρονικού ορίου try: s.connect((host, port)) print(f"Η θύρα {port} στον {host} είναι ανοιχτή") except (socket.timeout, ConnectionRefusedError): print(f"Η θύρα {port} στον {host} είναι κλειστή ή φιλτραρισμένη") finally: s.close() # Παράδειγμα χρήσης check_port("localhost", 80) # Έλεγχος τοπικού υπολογιστή check_port("google.com", 443) # Έλεγχος απομακρυσμένου υπολογιστή
Η επιλογή της μεθόδου εξαρτάται από τα διαθέσιμα εργαλεία, το λειτουργικό σύστημα και τη συγκεκριμένη εργασία. Το netcat και το nmap είναι μερικά από τα πιο ευέλικτα και ενημερωτικά εργαλεία.