Wireshark — ο κορυφαίος αναλυτής κίνησης δικτύου με ανοικτό κώδικα, που χρησιμοποιείται για την υποκλοπή και την επιθεώρηση πακέτων σε πραγματικό χρόνο. Το εργαλείο υποστηρίζει περισσότερα από δύο χιλιάδες πρωτόκολλα δικτύου και λειτουργεί σε όλες τις κύριες πλατφόρμες. Σύμφωνα με τον Wireshark User Guide (2026), το εργαλείο χρησιμοποιείται για διάγνωση δικτύων, αποσφαλμάτωση API και ανάλυση ασφαλείας στην ανάπτυξη εφαρμογών για κινητά και ιστού.
Βασικά σημεία
Wireshark — πρόγραμμα με ανοικτό κώδικα (GPLv2) που υποκλέπτει πακέτα δεδομένων που διέρχονται από τη διεπαφή δικτύου του υπολογιστή. Βασίζεται στη βιβλιοθήκη libpcap (Unix) ή Npcap (Windows) για την καταγραφή σε επίπεδο ζεύξης δεδομένων του μοντέλου OSI.
Η κάρτα δικτύου σε κανονική λειτουργία λαμβάνει μόνο πλαίσια που απευθύνονται στη δική της διεύθυνση MAC. Το Wireshark μεταφέρει τη διεπαφή σε promiscuous λειτουργία, στην οποία το σύστημα επεξεργάζεται όλα τα διερχόμενα πλαίσια ανεξάρτητα από τον παραλήπτη. Τα καταγεγραμμένα δεδομένα μεταδίδονται στον πυρήνα μέσω raw socket, μετά από το οποίο η βιβλιοθήκη libpcap τα αντιγράφει στον χώρο χρήστη για ανάλυση.
Το Wireshark χρησιμοποιεί αρθρωτή αρχιτεκτονική: κάθε πρωτόκολλο υλοποιείται ως ξεχωριστός αποδομητής (dissector) — ένα πρόσθετο που αναλύει τα δυαδικά δεδομένα και τα εμφανίζει σε δομημένη μορφή. Το 2026 στο πρόγραμμα έχουν υλοποιηθεί αποδομητές για 2 874 πρωτόκολλα, συμπεριλαμβανομένων των HTTP/2, QUIC, gRPC και MQTT. Οι αποδομητές λειτουργούν μέσω του συστήματος δέντρου πρωτοκόλλων — κάθε πακέτο αναλύεται στρώμα-στρώμα: από το πλαίσιο Ethernet έως το επίπεδο εφαρμογής.
// Παράδειγμα ενός απλού αποδομητή για προσαρμοσμένο πρωτόκολλο
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, void *data) {
proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
tvb, 0, tvb_captured_length(tvb), ENC_NA);
return 0;
} Γραφική διεπαφή Το Wireshark χωρίζεται σε τρία πάνελ: λίστα πακέτων (packet list), λεπτομέρειες πρωτοκόλλων (packet details) και hex dump (packet bytes). Κάθε πάνελ ενημερώνεται σε πραγματικό χρόνο και υποστηρίζει διαδραστική πλοήγηση — ένα κλικ στη γραμμή ενός πακέτου ανοίγει την πλήρη δομή του.
Το εργαλείο διαβάζει αρχεία καταγραφής σε μορφές pcap, pcapng, snoop και NetMon. Η εξαγωγή είναι δυνατή σε JSON, XML, CSV και plain text. Μεταξύ των βασικών πρωτοκόλλων επιπέδου εφαρμογής είναι: HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP και Protobuf. Για την ανάπτυξη εφαρμογών για κινητά ιδιαίτερα σημαντική είναι η υποστήριξη των gRPC και HTTP/2 με πολυπλεξία ροών.
Τα ενσωματωμένα βοηθητικά προγράμματα περιλαμβάνουν Follow Stream (αποκατάσταση πλήρους διαλόγου TCP/UDP/TLS), IO Graph (γράφημα εύρους ζώνης), στατιστικά συνομιλιών (Conversations) και ιεραρχία πρωτοκόλλων (Protocol Hierarchy). Η λειτουργία Flow Graph οπτικοποιεί τη σειρά των πακέτων μεταξύ κόμβων, γεγονός που διευκολύνει την εύρεση των αιτιών καθυστερήσεων κατά την αποσφαλμάτωση της αλληλεπίδρασης πελάτη-διακομιστή.
Η έναρξη της καταγραφής ξεκινά με την επιλογή της διεπαφής δικτύου — Ethernet, Wi-Fi, Bluetooth PAN ή Loopback. Στα Windows μπορεί να χρειαστεί η εγκατάσταση του Npcap σε λειτουργία WinPcap API Compatible Mode. Για την καταγραφή σε κινητές συσκευές χρησιμοποιείται το Remote Packet Capture μέσω σήραγγας SSH.
Σε μια συσκευή Android η κίνηση υποκλέπτεται μέσω tcpdump ή PCAPdroid, με επακόλουθη μεταφορά του αρχείου στον υπολογιστή εργασίας. Η εντολή για απομακρυσμένη καταγραφή μέσω ADB:
# Καταγραφή κίνησης σε Android μέσω ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Αντιγραφή στον υπολογιστή
adb pull /sdcard/capture.pcap . Στα Windows η κίνηση localhost (127.0.0.1) δεν διέρχεται από τη φυσική διεπαφή, επομένως το Wireshark δεν την βλέπει άμεσα. Η λύση — εγκατάσταση Npcap με την επιλογή Loopback Support ή ανακατεύθυνση της κίνησης μέσω RawCap. Σε Linux και macOS η διεπαφή loopback (lo) καταγράφεται χωρίς πρόσθετες ρυθμίσεις.
Wireshark προσφέρει δύο τύπους φίλτρων: capture filters (εφαρμόζονται πριν από την καταγραφή, σε επίπεδο libpcap) και display filters (εφαρμόζονται σε ήδη καταγεγραμμένα δεδομένα). Τα capture filters χρησιμοποιούν σύνταξη BPF (Berkeley Packet Filter), ενώ τα display filters — τη δική τους γλώσσα του Wireshark με αυτόματη συμπλήρωση.
Τα φίλτρα BPF γράφονται σε μορφή tcpdump και εκτελούνται στον πυρήνα, γεγονός που ελαχιστοποιεί την απώλεια πακέτων υπό υψηλή φόρτιση. Παραδείγματα φίλτρων:
| Φίλτρο | Σκοπός |
|---|---|
| tcp port 80 | Μόνο κίνηση HTTP στην τυπική θύρα |
| host 192.168.1.1 | Πακέτα από συγκεκριμένο host |
| not arp | Όλα τα πακέτα εκτός από αιτήματα ARP |
Τα display filters εφαρμόζονται εκ των υστέρων και υποστηρίζουν σύνθετες συνθήκες με λογικούς τελεστές and, or, not. Παράδειγμα: http.request.method == "POST" and ip.src == 192.168.0.100 θα φιλτράρει μόνο τα αιτήματα POST από συγκεκριμένη IP. Τα φίλτρα μπορούν να αποθηκεύονται ως αγαπημένα για επαναχρησιμοποίηση.
Η κίνηση HTTP εμφανίζεται στο Wireshark σε αναγνώσιμη μορφή: μέθοδος αιτήματος, URI, κεφαλίδες και σώμα απόκρισης. Η λειτουργία Follow TCP Stream συγκεντρώνει τον πλήρη διάλογο πελάτη και διακομιστή σε ένα παράθυρο. Για το HTTPS απαιτείται αποκρυπτογράφηση των συνεδριών TLS, καθώς το περιεχόμενο είναι κρυπτογραφημένο.
Τα προγράμματα περιήγησης Chrome και Firefox υποστηρίζουν τη μεταβλητή περιβάλλοντος SSLKEYLOGFILE, η οποία καταγράφει τα κλειδιά συνεδρίας TLS σε αρχείο κειμένου. Το Wireshark χρησιμοποιεί αυτό το αρχείο για την αποκρυπτογράφηση των εγγραφών. Η ρύθμιση γίνεται μέσω των Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.
# Εκκίνηση του Chrome με καταγραφή κλειδιών TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# Μετά την καταγραφή να ορίσετε τη διαδρομή στο Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename gRPC χρησιμοποιεί το HTTP/2 ως μεταφορά και το Protobuf για σειριοποίηση δεδομένων. Το Wireshark αποκρυπτογραφεί τα μηνύματα gRPC, εάν παρέχεται αρχείο .proto με τον ορισμό των δομών. Ο αποδομητής Protobuf αντιστοιχίζει τα δυαδικά πεδία με τα ονόματα από το αρχείο proto, γεγονός που είναι κρίσιμο κατά την αποσφαλμάτωση αρχιτεκτονικής μικροϋπηρεσιών.
Η αποσφαλμάτωση κινητών μέσω του Wireshark απαιτεί την προώθηση (proxy) της κίνησης της συσκευής στον υπολογιστή. Η πιο αξιόπιστη μέθοδος — η δημιουργία σημείου πρόσβασης Wi-Fi στον φορητό υπολογιστή και η ανακατεύθυνση της κίνησης μέσω NAT. Στο Android είναι επίσης διαθέσιμη η μέθοδος VPN με την εφαρμογή PCAPdroid χωρίς δικαιώματα root.
PCAPdroid δημιουργεί μια τοπική υπηρεσία VPN που ανακατευθύνει την κίνηση των εφαρμογών στο Wireshark μέσω ροής UDP. Η εφαρμογή δεν απαιτεί πρόσβαση root και υποστηρίζει φιλτράρισμα ανά μεμονωμένες διεργασίες. Τα αρχεία pcap που λαμβάνονται ανοίγονται στο Wireshark για πλήρη ανάλυση.
# Λήψη κίνησης από το PCAPdroid στον υπολογιστή
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap Wireshark — ένα καθολικό εργαλείο, αλλά για συγκεκριμένες εργασίες υπάρχουν πιο εξειδικευμένες λύσεις. Το tcpdump είναι πιο αποτελεσματικό για καταγραφή διακομιστή χωρίς γραφικά, το Charles Proxy είναι πιο βολικό για ανάλυση κίνησης HTTPS, και το Fiddler — για επιθεώρηση κίνησης ιστού με δυνατότητα τροποποίησης αιτημάτων εν κινήσει.
Charles Proxy λειτουργεί ως ενδιάμεσος διακομιστής μεσολάβησης με δυνατότητα υποκλοπής HTTPS μέσω δικής του πιστοποίησης SSL. Σε αντίθεση με το Wireshark, το Charles δεν απαιτεί ρύθμιση του SSLKEYLOGFILE και μπορεί όχι μόνο να βλέπει, αλλά και να τροποποιεί την κίνηση — να αντικαθιστά αποκρίσεις, να προσομοιώνει καθυστερήσεις και να επαναλαμβάνει αιτήματα.
Fiddler — ένα ακόμη εργαλείο μεσολάβησης, δημοφιλές στο οικοσύστημα .NET. Παρέχει ενσωματωμένο επεξεργαστή αιτημάτων, υποστήριξη AutoResponder για mock και composer για τη δημιουργία προσαρμοσμένων αιτημάτων. Το Fiddler ταιριάζει καλύτερα για ανάλυση κίνησης ιστού του προγράμματος περιήγησης, ενώ το Wireshark — για ανάλυση δικτύου χαμηλού επιπέδου.
| Εργαλείο | Τύπος | HTTPS χωρίς κλειδιά | Τροποποίηση κίνησης |
|---|---|---|---|
| Wireshark | Sniffer | Όχι (απαιτείται SSLKEYLOGFILE) | Μόνο προβολή |
| Charles | Proxy | Ναι (προσαρμοσμένο πιστοποιητικό) | Ναι |
| Fiddler | Proxy | Ναι (προσαρμοσμένο πιστοποιητικό) | Ναι |
| tcpdump | Sniffer | Όχι | Μόνο προβολή |
Wireshark απαιτεί κατανόηση των βασικών αρχών καταγραφής κίνησης. Ένα από τα συνηθισμένα σενάρια — η εύρεση της πηγής καθυστερήσεων σε μια εφαρμογή για κινητά μέσω του φίλτρου tcp.analysis.ack_rtt. Για την εύρεση αργών αιτημάτων HTTP χρησιμοποιήστε τη συνθήκη http.time μεγαλύτερο από 1.
Για την εύρεση αργών αιτημάτων HTTP φιλτράρετε http.time μεγαλύτερο από 1 — το Wireshark θα εμφανίσει αιτήματα με χρόνο απόκρισης άνω του 1 δευτερολέπτου. Συνδυάστε με το ip.addr για ανάλυση συγκεκριμένου διακομιστή. Το IO Graph με διάστημα 1 δευτερολέπτου θα δείξει καθαρά τις αιχμές φόρτισης.
Το Wireshark υποστηρίζει εξαγωγή σε CSV, JSON και XML μέσω του μενού File. Για αυτόματη ανάλυση χρησιμοποιήστε το tshark — την έκδοση κονσόλας που λειτουργεί σε σωληνώσεις CI/CD. Το Tshark υποστηρίζει τα ίδια φίλτρα και μορφές εξόδου με τη γραφική έκδοση.
Wireshark απαιτεί κατανόηση των βασικών αρχών καταγραφής κίνησης. Ένα από τα συνηθισμένα σενάρια — η εύρεση της πηγής καθυστερήσεων σε μια εφαρμογή για κινητά μέσω του φίλτρου tcp.analysis.ack_rtt. Για την εύρεση αργών αιτημάτων HTTP χρησιμοποιήστε τη συνθήκη http.time μεγαλύτερο από 1.
Για την εύρεση αργών αιτημάτων HTTP φιλτράρετε http.time μεγαλύτερο από 1 — το Wireshark θα εμφανίσει αιτήματα με χρόνο απόκρισης άνω του 1 δευτερολέπτου. Συνδυάστε με το ip.addr για ανάλυση συγκεκριμένου διακομιστή. Το IO Graph με διάστημα 1 δευτερολέπτου θα δείξει καθαρά τις αιχμές φόρτισης.
Το Wireshark υποστηρίζει εξαγωγή σε CSV, JSON και XML μέσω του μενού File. Για αυτόματη ανάλυση χρησιμοποιήστε το tshark — την έκδοση κονσόλας που λειτουργεί σε σωληνώσεις CI/CD. Το Tshark υποστηρίζει τα ίδια φίλτρα και μορφές εξόδου με τη γραφική έκδοση.
Συχνές ερωτήσεις
Wireshark παρέχει γραφική διεπαφή με οπτικοποίηση πακέτων, ενσωματωμένα φίλτρα και στατιστικά. Το tcpdump — βοηθητικό πρόγραμμα κονσόλας χωρίς GUI, βολικό για καταγραφή διακομιστή μέσω SSH. Το Wireshark μπορεί να διαβάσει αρχεία tcpdump και αντίστροφα.
Για την αποκρυπτογράφηση απαιτείται το αρχείο κλειδιών συνεδρίας TLS (SSLKEYLOGFILE). Τα Chrome και Firefox εξάγουν τα κλειδιά κατά την εκκίνηση με μεταβλητή περιβάλλοντος. Η διαδρομή προς το αρχείο καθορίζεται στις ρυθμίσεις Protocols → TLS στο Wireshark.
Η κίνηση loopback στα Windows δεν διέρχεται από το πρόγραμμα οδήγησης Npcap από προεπιλογή. Η λύση — εγκατάσταση Npcap με ενεργοποιημένη την επιλογή Loopback Support ή χρήση του εργαλείου RawCap για καταγραφή τοπικής κίνησης.
Ναι, μέσω προώθησης (proxy) της κίνησης στον υπολογιστή. Το Android υποστηρίζει καταγραφή μέσω PCAPdroid (χωρίς root) ή tcpdump (με root). Το iOS απαιτεί RVI (Remote Virtual Interface) μέσω macOS ή jailbreak για την καταγραφή.
Το display filter frame contains αναζητά μια συμβολοσειρά ή ακολουθία hex σε ολόκληρο το πακέτο. Παράδειγμα: frame contains "password" θα βρει πακέτα με την υποσυμβολοσειρά password σε οποιοδήποτε πεδίο. Για ακριβή αναζήτηση κατά πεδίο χρησιμοποιήστε το http.request.uri contains "api" .
Συμπεράσματα
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης