6 Βοηθητικό πρόγραμμα Linux για δοκιμή συνδεσιμότητας δικτύου
Αναρωτιέστε πώς να ελέγξετε τη συνδεσιμότητα μεταξύ δύο τερματικών σημείων δικτύου;
Μία από τις κοινές εργασίες για το sysadmin είναι να ελέγχει τη συνδεσιμότητα για την αντιμετώπιση προβλημάτων δικτύωσης. Θα μπορούσε να είναι ότι η εφαρμογή δεν μπορεί να συνδεθεί με την υπηρεσία υποστήριξης, δεν είναι δυνατή η ανάκτηση δεδομένων από εξωτερική διεύθυνση URL, η επαλήθευση εάν η ροή είναι ανοιχτή κ.λπ.
Ό,τι κι αν είναι, το παρακάτω βοηθητικό πρόγραμμα/εντολές θα σας βοηθούσαν. Έχουν δοκιμαστεί σε CentOS και δεν βλέπω κανένα λόγο να μην δουλεύω σε άλλη διανομή Linux.
Ας εξερευνήσουμε…
Πίνακας περιεχομένων
telnet
Μία από τις ευρέως χρησιμοποιούμενες εντολές για τη δοκιμή βασικής συνδεσιμότητας μεταξύ διακομιστών, διακομιστή σε IP άλλης συσκευής δικτύου. Η σύνταξη για την εντολή είναι εύκολη.
telnet $destinationIP $PORT
Ας υποθέσουμε ότι θέλετε να δοκιμάσετε εάν μπορείτε να συνδεθείτε στη θύρα 8080 στη διεύθυνση IP 10.0.0.1. τότε η εντολή θα ήταν.
telnet 10.0.0.1 8080
Εάν δεν υπάρχει πρόβλημα στη σύνδεση, τότε θα πρέπει να δείτε το συνδεδεμένο μήνυμα.
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Σημείωση: εάν λάβετε μια εντολή που δεν βρέθηκε κατά την εκτέλεση του telnet, τότε πρέπει να εγκαταστήσετε το telnet όπως εξήγησα εδώ.
Στα περισσότερα από τα σενάρια, το telnet θα πρέπει να βοηθήσει. Ωστόσο, εάν χρειάζεστε κάποια άλλη επιλογή, τότε εδώ είναι μερικές εναλλακτικές λύσεις telnet.
ncat ή nc
Το Ncat (γνωστός και ως nc) είναι ένα ισχυρό βοηθητικό πρόγραμμα δικτύου με πολλές δυνατότητες όπως σύνδεση και αποδοχή σύνδεσης, εκτέλεση εντολών από απόσταση, εγγραφή και ανάγνωση δεδομένων κ.λπ. Λειτουργεί σε IPv4 και IPv6, και τα δύο.
Για να κάνετε μια απλή δοκιμή για να ελέγξετε αν η θύρα είναι ανοιχτή ή όχι, θα εκτελέσετε τα εξής.
nc -vz $HOSTNAME $PORT
Ας πάρουμε ένα παράδειγμα δοκιμής θύρας 443 στο grtechpc.org.com.
[[email protected] ~]# nc -vz grtechpc.org.com 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 104.25.133.107:443. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. [[email protected] ~]#
Όπως αναφέρθηκε, μπορείτε επίσης να χρησιμοποιήσετε το nc για να συνδέσετε τη σύνδεση για ακρόαση σε μια συγκεκριμένη θύρα. Αυτό μπορεί να είναι χρήσιμο όταν δεν εκτελείτε πραγματικές υπηρεσίες αλλά θέλετε να διασφαλίσετε ότι υπάρχει συνδεσιμότητα.
Για να ξεκινήσετε την ακρόαση σε μια θύρα:
nc -l $PORTNUMBER
Θα δεσμεύσει τη θύρα σε έναν δεδομένο αριθμό.
Εάν το ncat δεν είναι εγκατεστημένο, τότε μπορείτε να το ολοκληρώσετε με το yum install nc σε διακομιστές CentOS/RHEL.
wget
Το wget είναι μια χρήσιμη εντολή για λήψη/δοκιμή HTTP, HTTPS και FTP. Εάν εργάζεστε ως μηχανικός ιστού ή αντιμετωπίζετε συχνά ζητήματα που σχετίζονται με τον ιστό, τότε το wget είναι ο φίλος σας. Η δοκιμή με χρήση wget είναι απλή.
wget $URL
Ακολουθεί ένα παράδειγμα δοκιμής tools.grtechpc.org.com
[[email protected] ~]# wget tools.grtechpc.org.com --2019-05-09 20:40:01-- http://tools.grtechpc.org.com/ Resolving tools.grtechpc.org.com (tools.grtechpc.org.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.grtechpc.org.com (tools.grtechpc.org.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.grtechpc.org.com/ [following] --2019-05-09 20:40:01-- https://tools.grtechpc.org.com/ Connecting to tools.grtechpc.org.com (tools.grtechpc.org.com)|104.25.134.107|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.2' [ <=> ] 15,139 --.-K/s in 0.001s 2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139] [[email protected] ~]#
Αν δείχνει συνδεδεμένο σημαίνει ότι δεν υπάρχει πρόβλημα συνδεσιμότητας.
Ελέγξτε αυτό για να δείτε μερικά από τα συχνά χρησιμοποιούμενα παραδείγματα εντολών wget.
μπούκλα
Η μπούκλα είναι ένα εργαλείο πολλαπλών χρήσεων.
Γνωρίζετε ότι μπορείτε να συνδέσετε telnet σε μια θύρα χρησιμοποιώντας curl;
Λοιπόν, τώρα ξέρεις.
curl -v telnet://$IP:$PORT
Το παρακάτω είναι ένα παράδειγμα εργασίας.
[[email protected] ~]# curl -v telnet://chandan.io:443 * About to connect() to chandan.io port 443 (#0) * Trying 104.31.68.106... * Connected to chandan.io (104.31.68.106) port 443 (#0)
Και, όταν δεν υπάρχει πρόβλημα θύρας ακρόασης ή τείχους προστασίας, τότε θα δείτε να προσπαθείτε…
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
Μπορείτε επίσης να χρησιμοποιήσετε το curl για τη λήψη των δεδομένων. Υποστηρίζει πολλαπλά πρωτόκολλα – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER κ.λπ.
nmap
Ένα δημοφιλές εργαλείο με εκατοντάδες δυνατότητες. Συχνά αυτό θεωρείται ως εργαλείο ασφαλείας, nmap σας επιτρέπει να δοκιμάσετε μία μόνο IP/θύρα ή εντός της περιοχής.
Για να δοκιμάσετε μία μόνο θύρα
nmap -p $PORT $IP
Ένα παράδειγμα δοκιμής της θύρας 443 στο siterelic.com
[[email protected] ~]# nmap -p 443 siterelic.com Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC Nmap scan report for siterelic.com (104.27.174.50) Host is up (0.0079s latency). Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32 PORT STATE SERVICE 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds [[email protected] ~]#
Κοιτάξτε τη στήλη κατάσταση. Αν δείτε ανοιχτό σημαίνει ότι η σύνδεση είναι εντάξει. Και, εάν η κατάσταση είναι φιλτραρισμένη, αυτό σημαίνει ότι δεν υπάρχει συνδεσιμότητα.
Ping
Μία από τις ευρέως χρησιμοποιούμενες εντολές είναι να ελέγξετε εάν ένας απομακρυσμένος κεντρικός υπολογιστής ανταποκρίνεται στο ICMP ECHO_REQUEST ή όχι. Λάβετε υπόψη ότι αυτό μπορεί να μην σας δώσει ακριβή αποτελέσματα όταν το ICMP είναι αποκλεισμένο στο τείχος προστασίας του απομακρυσμένου δικτύου. Υποθέτοντας ότι δεν συμβαίνει αυτό, μπορείτε να κάνετε ping στο τελικό σημείο δικτύου IPv4 ή IPv4 όπως παρακάτω.
ping $ipaddress ping $url
Για παράδειγμα, αποτέλεσμα επιτυχίας του grtechpc.org.com
[email protected] ~ % ping grtechpc.org.com PING grtechpc.org.com (104.27.119.115): 56 data bytes 64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms 64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
Για παράδειγμα, αποτέλεσμα αποτυχίας εσωτερικής IP.
[email protected] ~ % ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
Εάν το τελικό σημείο υποστηρίζει IPv6, μπορείτε να χρησιμοποιήσετε την εντολή ping6 όπως παρακάτω.
[email protected] ~ % ping6 grtechpc.org.com PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673 16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms 16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
Εάν χρειάζεται να κάνετε απομακρυσμένο ping μέσω του Διαδικτύου, μπορείτε να χρησιμοποιήσετε το διαδικτυακό εργαλείο ping.
συμπέρασμα
Το telnet καταργείται σταδιακά στην πιο πρόσφατη έκδοση Linux. Χάρη στην παραπάνω εναλλακτική λύση telnet.
Εάν είστε νέος στο Linux και θέλετε να μάθετε, τότε ρίξτε μια ματιά σε αυτό Μάθημα Udemy.