Άνοιξα το qBittorrent σε ένα Mac mini, έβαλα το Network Interface σε utun4, έκανα επανεκκίνηση και μετά πέρασα ένα απόγευμα βλέποντας ένα torrent να κολλάει στη λήψη μεταδεδομένων ενώ το VPN έδειχνε ακόμη υγιή σύνδεση. Η ρύθμιση δεν ήταν λάθος κατ' αρχήν· το όνομα ήταν παρωχημένο. Το macOS δίνει αριθμούς utun όταν ξεκινούν υπηρεσίες, οπότε το utun4 που ήταν σωστό την προηγούμενη εβδομάδα έδειχνε σε σήραγγα που δεν υπήρχε πια, και ο πελάτης έδενε τα sockets του σε μια συσκευή χωρίς διαδρομή. Η παρακάτω σειρά είναι αυτή που χρησιμοποιώ τώρα: διάβασε τη διεπαφή από τη σήραγγα που τρέχει, διάλεξέ την στον πελάτη, επανεκκίνησε τη συνεδρία και μετά απόδειξε τη δέσμευση με μια μεταφορά και μια σκόπιμη αποσύνδεση.

Ανοίξτε το Advanced και βρείτε το πεδίο διεπαφής

Στο παράθυρο του qBittorrent, ανοίξτε τις Προτιμήσεις με Cmd+, και πηγαίνετε στη σελίδα Advanced. Το Network Interface είναι το πεδίο που μετράει: απαριθμεί τα ονόματα διεπαφών του συστήματος και από προεπιλογή είναι στο Any Interface, που σημαίνει ότι το λειτουργικό σύστημα διαλέγει διαδρομή για κάθε socket που ανοίγει ο πελάτης. Η αναφορά επιλογών του έργου τεκμηριώνει το πεδίο και αυτή την προεπιλογή, και είναι η ίδια ρύθμιση σε κάθε πλατφόρμα αν και τα ονόματα μέσα της δεν είναι.

Δύο λεπτομέρειες μπερδεύουν τον κόσμο εδώ. Η λίστα δείχνει ονόματα συσκευών όπως en0, en1 και utun0 έως utun9, ποτέ το όνομα προϊόντος του παρόχου VPN, οπότε χρειάζεστε την αντιστοίχιση πριν διαλέξετε κάτι λογικό. Και η επιλογή εφαρμόζεται όταν ξεκινά η συνεδρία BitTorrent, όχι τη στιγμή που πατάτε OK, οπότε μια αλλαγή που φαίνεται αποθηκευμένη μπορεί να τρέχει ακόμη στην παλιά δέσμευση.

Κλείστε την εφαρμογή σωστά με Cmd+Q και επιβεβαιώστε ότι η διεργασία έφυγε πριν την ανοίξετε ξανά. Το κλείσιμο του παραθύρου απλώς την κρύβει, και ένας κρυφός πελάτης κρατά τη συνεδρία, τη θύρα ακρόασης και την παλιά διεπαφή του.

pgrep -fl qbittorrent

Βρείτε τη διεπαφή που κατέχει πραγματικά το VPN σας

Συνδέστε πρώτα το VPN, μέσω του πελάτη του παρόχου, και μετά διαβάστε την άποψη του συστήματος αντί για το μενού του πελάτη. Οι παρακάτω εντολές απαριθμούν κάθε διεπαφή με τις διευθύνσεις της, δείχνουν ποιες θεωρεί ενεργές το σύστημα και εκτυπώνουν τον πίνακα δρομολόγησης· ψάχνετε τη συσκευή utun που μεταφέρει το ιδιωτικό εύρος που σας δίνει ο πάροχος.

ifconfig -a | grep -A4 '^utun'
scutil --nwi
netstat -rn -f inet | head -n 5

Τρεις αναγνώσεις σας λένε ποια συσκευή είναι η σήραγγα. Η καταχώριση utun χρειάζεται διεύθυνση inet που ανήκει στο pool του VPN. Το scutil --nwi δείχνει ποιες διεπαφές θεωρεί ενεργές το σύστημα και ποια είναι κύρια. Το netstat -rn δείχνει πού δείχνει η προεπιλεγμένη διαδρομή, και αν αυτή η διαδρομή δείχνει ακόμη στο en0 ενώ ένα utun έχει διεύθυνση, η σήραγγα δεν μεταφέρει όλη την κίνηση, κάτι που αλλάζει το τι θα κάνει αργότερα η δέσμευση.

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

netstat -ib | grep utun

Μην θεωρείτε τον αριθμό σταθερό. Μια επανασύνδεση μπορεί να δώσει στην ίδια σήραγγα άλλο όνομα utun, και μια υπηρεσία iCloud ή Continuity μπορεί να κρατήσει το utun0 πολύ πριν συνδεθεί το VPN σας.

Προσαρμόστε τη δέσμευση στο εύρος της σήραγγας

Το πεδίο δεσμεύει μια συσκευή, και αυτό είναι όλο. Αν το VPN είναι πλήρης σήραγγα που δρομολογεί το 0.0.0.0/0 μέσα στο utun, η δέσμευση σε αυτή τη συσκευή στέλνει κάθε σύνδεση peer και κάθε αίτημα tracker μέσα από το VPN. Αν το VPN είναι διαχωρισμένη σήραγγα που δρομολογεί μόνο λίγα υποδίκτυα, η δέσμευση στο utun στέλνει την κίνηση των peer σε μια συσκευή χωρίς διαδρομή για αυτούς τους peer, και οι μεταφορές σταματούν αντί να διαρρεύσουν. Και τα δύο αποτελέσματα είναι ασφαλέστερα από το Any Interface, αλλά μόνο ένα κρατά τον πελάτη να δουλεύει. Τίποτα έξω από τον πελάτη δεν αλλάζει: τα προγράμματα περιήγησης και άλλες εφαρμογές κρατούν τις δικές τους διαδρομές, οπότε μια απαίτηση που καλύπτει κάθε εφαρμογή χρειάζεται επιβολή από την πλευρά του VPN.

Διαβάστε την κατάσταση πριν διαλέξετε οτιδήποτε:

What you seeWhat it means for the bind
A utun with a provider address and the default route pointing at itFull tunnel; the bind covers peer and tracker traffic
A utun with a provider address but the default route still on en0Split tunnel; the bind will stall transfers unless the provider routes 0.0.0.0/0
No utun carrying a provider addressThe VPN is down or connects on demand; bring it up before selecting
A utun number that changed since the last sessionThe saved name is stale; reselect and restart

Και η οικογένεια διευθύνσεων μετράει. Ένας πάροχος που δίνει μόνο IPv4 αφήνει τη δεσμευμένη διεπαφή χωρίς διεύθυνση IPv6, οπότε οι peer IPv6 αποτυγχάνουν αντί να γλιστρήσουν έξω από το Wi-Fi. Ξεχωριστά, η δέσμευση sockets δεν καρφώνει την επίλυση ονομάτων: τα ονόματα κεντρικών tracker επιλύονται μέσω του resolver του macOS, που ακολουθεί τη διαμόρφωση DNS του συστήματος και όχι τη συσκευή που διαλέξατε.

Τρεις τρόποι με τους οποίους μια φαινομενικά σωστή επιλογή αποτυγχάνει

Η πρώτη αποτυχία είναι να μην κάνετε επανεκκίνηση. Το πεδίο δείχνει utun4, οι προτιμήσεις φαίνονται ρυθμισμένες, και μια δοκιμαστική μεταφορά βγαίνει ακόμη από το Wi-Fi επειδή η τρέχουσα συνεδρία κράτησε την παλιά δέσμευση. Κλείστε πλήρως, επιβεβαιώστε με pgrep, ανοίξτε ξανά και ξεκινήστε τη μεταφορά πάλι.

Η δεύτερη είναι το παρωχημένο όνομα μετά από επανασύνδεση. Μόλις εξαφανιστεί η δεσμευμένη συσκευή, οι συνδέσεις peer αποτυγχάνουν και ο πελάτης τείνει να αναφέρει σφάλματα tracker αντί για ένα καθαρό μήνυμα ότι η διεπαφή έφυγε, που μοιάζει με νεκρό torrent. Διαβάστε ξανά το ifconfig, διαλέξτε το νέο όνομα και επανεκκινήστε.

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

Επαληθεύστε με πραγματική μεταφορά και αποσύνδεση

Χρησιμοποιήστε μια μεταφορά που σας επιτρέπεται να εκτελέσετε, όπως μια εικόνα διανομής Linux, και ξεκινήστε την με το VPN συνδεδεμένο. Παρατηρήστε τους μετρητές ανά διεπαφή πριν και μετά και συγκρίνετέ τους με τον δικό του μετρητή δεδομένων του πελάτη VPN· και οι δύο πρέπει να ανεβαίνουν μαζί όσο γεμίζει η λίστα peer.

netstat -ib | grep utun
pgrep -fl qbittorrent

Μετά αποσυνδέστε το VPN από τη δική του διεπαφή και παρατηρήστε τη μεταφορά. Οι peer πρέπει να φύγουν, και οι νέες συνδέσεις πρέπει να αποτύχουν λίγο μετά την πτώση της σήραγγας. Αν η απόδοση συνεχίζεται, η δέσμευση δεν ισχύει και είστε πίσω στο βήμα της επανεκκίνησης, όχι στο firewall.

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

Σχετικά άρθρα