Android

Πώς να ελέγξετε για τις θύρες ακρόασης στο linux (θύρες σε χρήση)

Βίντεο 711 Τι κανουμε εαν ο υπολογιστης δεν αναγνωριζει καποιο στικακι

Βίντεο 711 Τι κανουμε εαν ο υπολογιστης δεν αναγνωριζει καποιο στικακι

Πίνακας περιεχομένων:

Anonim

Όταν αντιμετωπίζετε προβλήματα σύνδεσης δικτύου ή προβλήματα συγκεκριμένης εφαρμογής, ένα από τα πρώτα πράγματα που πρέπει να ελέγξετε πρέπει να είναι ποιες θύρες χρησιμοποιούνται στην πραγματικότητα στο σύστημά σας και ποια εφαρμογή ακούει σε συγκεκριμένη θύρα.

Αυτό το άρθρο εξηγεί πώς να μάθετε ποιες υπηρεσίες ακούνε σε ποιες θύρες χρησιμοποιούνται οι εντολές netstat , ss και lsof . Οι οδηγίες ισχύουν για όλα τα λειτουργικά συστήματα που βασίζονται σε Linux και Unix, όπως macOS.

Τι είναι η Θύρα Ακρόασης

Η θύρα δικτύου αναγνωρίζεται από τον αριθμό, τη σχετική διεύθυνση IP και τον τύπο του πρωτοκόλλου επικοινωνίας, όπως το TCP ή το UDP.

Η θύρα ακρόασης είναι μια θύρα δικτύου στην οποία ακούει μια εφαρμογή ή διαδικασία, ενεργώντας ως τελικό σημείο επικοινωνίας.

Κάθε θύρα ακρόασης μπορεί να ανοίξει ή να κλείσει (φιλτραριστεί) χρησιμοποιώντας ένα τείχος προστασίας. Σε γενικές γραμμές, μια ανοικτή θύρα είναι μια θύρα δικτύου που δέχεται εισερχόμενα πακέτα από απομακρυσμένες τοποθεσίες.

Δεν μπορείτε να έχετε δύο υπηρεσίες που ακούν την ίδια θύρα στην ίδια διεύθυνση IP.

Για παράδειγμα, εάν εκτελείτε έναν διακομιστή ιστού Apache που ακούει στις θύρες 80 και 443 και προσπαθείτε να εγκαταστήσετε το Nginx, το αργότερο δεν θα ξεκινήσει, επειδή οι θύρες HTTP και HTTPS είναι ήδη σε χρήση.

Ελέγξτε τις θύρες ακρόασης με το netstat

netstat είναι ένα εργαλείο γραμμής εντολών που μπορεί να παρέχει πληροφορίες σχετικά με τις συνδέσεις δικτύου.

Για να εμφανίσετε όλες τις θύρες TCP ή UDP που ακούτε, συμπεριλαμβανομένων των υπηρεσιών που χρησιμοποιούν τις θύρες και την κατάσταση υποδοχής, χρησιμοποιήστε την ακόλουθη εντολή:

sudo netstat -tunlp

Οι επιλογές που χρησιμοποιούνται σε αυτήν την εντολή έχουν την ακόλουθη σημασία:

  • -t - Εμφάνιση θυρών TCP. -u - Εμφάνιση θυρών UDP. -n - Εμφάνιση αριθμητικών διευθύνσεων αντί για επίλυση κεντρικών υπολογιστών. -l - Εμφάνιση μόνο θύρες ακρόασης. -p - Εμφάνιση του PID και του ονόματος της διαδικασίας του ακροατή. Αυτές οι πληροφορίες εμφανίζονται μόνο αν εκτελέσετε την εντολή ως χρήστη root ή sudo.

Η έξοδος θα φαίνεται κάπως έτσι:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

Οι σημαντικές στήλες στην περίπτωσή μας είναι:

  • Proto - Το πρωτόκολλο που χρησιμοποιείται από την πρίζα. Local Address - Η διεύθυνση IP και ο αριθμός θύρας στον οποίο ακούει η διαδικασία. PID/Program name - Το PID και το όνομα της διαδικασίας.

sudo netstat -tnlp | grep:22

Η έξοδος δείχνει ότι σε αυτή τη θύρα μηχανής 22 χρησιμοποιείται από τον εξυπηρετητή SSH:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

Εάν η έξοδος είναι άδεια, σημαίνει ότι δεν ακούγεται τίποτα στη θύρα.

Μπορείτε επίσης να φιλτράρετε τη λίστα βάσει κριτηρίων, για παράδειγμα, PID, πρωτόκολλο, κατάσταση και ούτω καθεξής.

netstat είναι παρωχημένο και αντικαθίσταται με ss και ip , αλλά εξακολουθεί να είναι από τις πιο χρησιμοποιούμενες εντολές για να ελέγξετε τις συνδέσεις δικτύου.

Ελέγξτε τις θύρες ακρόασης με ss

ss είναι το νέο netstat . Χωρίς κάποια χαρακτηριστικά netstat αλλά εκθέτει περισσότερες καταστάσεις TCP και είναι ελαφρώς ταχύτερη. Οι επιλογές εντολών είναι ως επί το πλείστον οι ίδιες, ώστε η μετάβαση από το netstat σε ss δεν είναι δύσκολη.

Για να λάβετε μια λίστα με όλες τις θύρες ακρόασης με ss θα πληκτρολογήσετε:

sudo ss -tunlp

Η παραγωγή είναι σχεδόν ίδια με αυτή που αναφέρθηκε από το netstat :

State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))

Ελέγξτε τις θύρες ακρόασης με το lsof

lsof είναι ένα ισχυρό βοηθητικό πρόγραμμα γραμμής εντολών που παρέχει πληροφορίες για αρχεία που ανοίγουν με διαδικασίες.

Στο Linux, όλα είναι ένα αρχείο. Μπορείτε να σκεφτείτε μια υποδοχή ως αρχείο που γράφει στο δίκτυο.

Για να λάβετε μια λίστα με όλες τις θύρες TCP ακρόασης με τύπο lsof :

sudo lsof -nP -iTCP -sTCP:LISTEN

Οι επιλογές που χρησιμοποιούνται είναι οι εξής:

  • -n - Μην μετατρέπετε τους αριθμούς θυρών σε ονόματα θυρών. -p - Μην επιλύσετε ονόματα κεντρικών υπολογιστών, εμφανίζετε αριθμητικές διευθύνσεις. -iTCP -sTCP:LISTEN - Εμφάνιση μόνο των αρχείων δικτύου με την κατάσταση TCP LISTEN.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

Τα περισσότερα ονόματα στηλών εξόδου είναι αυτονόητα:

  • COMMAND , PID , USER - Το όνομα, το pid και ο χρήστης που εκτελεί το πρόγραμμα που σχετίζεται με τη θύρα. NAME - Ο αριθμός θύρας.

Για να βρείτε ποια διαδικασία ακούει σε μια συγκεκριμένη θύρα, για παράδειγμα, τη θύρα 3306 που χρησιμοποιείτε:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

Η έξοδος δείχνει ότι η θύρα 3306 χρησιμοποιείται από τον εξυπηρετητή MySQL:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

Για περισσότερες πληροφορίες, επισκεφτείτε τη σελίδα man lsof και διαβάστε για όλες τις άλλες δυνατές επιλογές αυτού του εργαλείου.

συμπέρασμα

Σας έχουμε δείξει πολλές εντολές που μπορείτε να χρησιμοποιήσετε για να ελέγξετε ποιες θύρες χρησιμοποιούνται στο σύστημά σας και πώς μπορείτε να βρείτε ποια διαδικασία ακούει σε μια συγκεκριμένη θύρα.

τερματικό