Πρόβλημα FortiClient σε M1 MacBookPro: Λύση
Βρήκα μια γρήγορη λύση για το πρόβλημα συνδεσιμότητας του FortiClient VPN client με Apple M1 MacBookPro. Δεν είναι κάτι σπουδαίο...

Χρειάζομαι να συνδέομαι σε VPN μέσω FortiClient για να κάνω τη δουλειά μου και να έχω πρόσβαση σε κάποιους πόρους με ασφάλεια. Όταν ξεκίνησα να δουλεύω για την εταιρεία μου τον Μάρτιο του 2021, μου έδωσαν ένα M1 MacBookPro. Το M1 MacBookPro είναι διαφορετικό από τα άλλα επειδή έρχεται με νέα αρχιτεκτονική CPU. Προηγουμένως, η Apple χρησιμοποιούσε CPU βασισμένη σε Intel, αλλά τώρα αποφάσισαν να τρέχουν το macOS με CPU βασισμένη σε ARM και η Apple το ονόμασε M1 προς το παρόν.
Πολλά λογισμικά δεν είναι συμβατά με ARM. Μερικές φορές αντιμετωπίζω κάποια προβλήματα όπως "This component is not compatible with your CPU".
Όταν συνδέθηκα σε VPN μέσω FortiClient v6.4.3.1325, φαίνεται συνδεδεμένο αλλά η ταχύτητα του internet μου γίνεται πολύ αργή. Κανονικά, έχω ταχύτητα internet 100MB/sec. Ρώτησα τους συναδέλφους μου αν "αντιμετωπίζετε προβλήματα με το VPN ή/και την ταχύτητα VPN;" και μου είπαν "ΟΧΙ!" Χρησιμοποιούν λίγο παλαιότερο MacBookPro από το δικό μου με CPU βασισμένη σε Intel και σκέφτηκα ότι είναι φυσιολογική κατάσταση επειδή οι εκδόσεις με Intel είναι εντάξει και σταθερές.
Άρχισα να κάνω debugging για να βρω τη βασική αιτία και έλεγξα τον πίνακα δρομολόγησης πριν συνδεθώ στο VPN.
➜ ~ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.31.1 UGScg en0
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#14 UCS en0 !
192.168.31 link#14 UCS en0 !
192.168.31.1/32 link#14 UCS en0 !
192.168.31.1 ec:41:18:ec:c6:bc UHLWIir en0 1189
192.168.31.147/32 link#14 UCS en0 !
192.168.31.147 a0:78:17:87:b4:88 UHLWI lo0
192.168.31.171 b8:bc:5b:6:28:18 UHLWI en0 1165
192.168.31.255 ff:ff:ff:ff:ff:ff UHLWbI en0 !
224.0.0/4 link#14 UmCS en0 !
224.0.0.251 1:0:5e:0:0:fb UHmLWI en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI en0
255.255.255.255/32 link#14 UCS en0 !
Ο πίνακας δρομολόγησής μου φαίνεται εντάξει. Το 192.168.31.1 είναι ο ασύρματος router μου και η default διαδρομή οδηγεί στον ασύρματο router μου. Είναι εντάξει.
Μετά από αυτό, συνδέθηκα σε VPN μέσω FortiClient και ξαναέλεγξα τον πίνακα δρομολόγησής μου. Το 10.212.134.152 είναι η τοπική μου IP διεύθυνση που εκχωρείται από το FortiClient.
➜ ~ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default link#19 UCSg ppp0
default 192.168.31.1 UGScIg en0
8.8.8.8 link#19 UHWIig ppp0
13.224.58.179 link#19 UHWIig ppp0
31.XXX.XX.XX/32 192.168.31.1 UGSc en0
34.XXX.XX.XXX link#19 UHWIig ppp0
34.XXX.XXX.xxx link#19 UHWIig ppp0
35.XXX.XXX.XX link#19 UHWIig ppp0
35.XXX.XXX.XXX link#19 UHWIig ppp0
80.80.80.80 link#19 UHW3Ig ppp0 3597
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#14 UCS en0 !
169.254.38.179 10.212.134.152 UH ppp0
192.168.31 link#14 UCS en0 !
192.168.31.1/32 link#14 UCS en0 !
192.168.31.1 ec:41:18:ec:c6:bc UHLWIir en0 1181
192.168.31.147/32 link#14 UCS en0 !
192.168.31.147 a0:78:17:87:b4:88 UHLWI lo0
192.168.31.171 b8:bc:5b:6:28:18 UHLWIi en0 1139
192.168.31.255 ff:ff:ff:ff:ff:ff UHLWbI en0 !
224.0.0/4 link#19 UmCS ppp0
224.0.0/4 link#14 UmCSI en0 !
224.0.0.251 link#19 UHmW3I ppp0 3599
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI en0
239.255.255.250 link#19 UHmW3I ppp0 3599
255.255.255.255/32 link#19 UCS ppp0
255.255.255.255/32 link#14 UCSI en0 !
Η υπηρεσία VPN μας δεν χρησιμοποιεί split-tunneling και το link#19 Ή 10.212.134.152 θα πρέπει να είναι το next hop για την default διαδρομή μαζί με τον ασύρματο router μου ταυτόχρονα.
Διαγράφω την default διαδρομή μου!
Ναι, αποφάσισα να χειριστώ τον πίνακα δρομολόγησής μου χειροκίνητα.
➜ ~ sudo route delete default
Password:
delete net defaultΤώρα, το next hop θα πρέπει να είναι η τοπική διεύθυνση IP του FortiClient μου. Είναι 10.212.134.152 για την περίπτωσή μου. Αυτή η τοπική διεύθυνση IP είναι δυναμική και αλλάζει σε κάθε σύνδεση επειδή το DHCP εκχωρεί αυτή τη διεύθυνση IP.
Τώρα, πώς μοιάζει ο πίνακας δρομολόγησής μου; Η default διαδρομή δεν θα πρέπει να είναι εκεί...
➜ ~ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.31.1 UGScIg en0
31.XXX.XX.XX/32 192.168.31.1 UGSc en0
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#14 UCS en0 !
169.254.38.179 10.212.134.152 UH ppp0
192.168.31 link#14 UCS en0 !
192.168.31.1/32 link#14 UCS en0 !
192.168.31.1 ec:41:18:ec:c6:bc UHLWIir en0 1178
192.168.31.147/32 link#14 UCS en0 !
192.168.31.147 a0:78:17:87:b4:88 UHLWI lo0
192.168.31.171 b8:bc:5b:6:28:18 UHLWIi en0 586
192.168.31.222 c:2c:54:e4:67:81 UHLWI en0 1156
192.168.31.255 ff:ff:ff:ff:ff:ff UHLWbI en0 !
224.0.0/4 link#19 UmCS ppp0
224.0.0/4 link#14 UmCSI en0 !
224.0.0.251 link#19 UHmW3I ppp0 3589
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI en0
239.255.255.250 link#19 UHmW3I ppp0 3588
255.255.255.255/32 link#19 UCS ppp0
255.255.255.255/32 link#14 UCSI en0 !
Το link#19 εξαφανίστηκε από την default διαδρομή. Ωραία! Και τώρα, δεν μπορώ να έχω πρόσβαση στο internet. Ως default διαδρομή, ο ασύρματος router μου είναι ακόμα στον πίνακα δρομολόγησης, αλλά το FortiClient το χρησιμοποιεί για να διατηρεί τη σύνδεση με το VPN. Ναι, είμαι ακόμα συνδεδεμένος στο internet αλλά δεν έχω next hop.
➜ ~ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
Request timeout for icmp_seq 0
ping: sendto: No route to host
Request timeout for icmp_seq 1
ping: sendto: No route to host
Request timeout for icmp_seq 2
— 8.8.8.8 ping statistics —
4 packets transmitted, 0 packets received, 100.0% packet loss
Ας προσθέσουμε μια νέα default διαδρομή...
➜ ~ sudo route add default 10.212.134.152
add net default: gateway 10.212.134.152Τώρα, μπορώ να κάνω ping στο 8.8.8.8 μετά την προσθήκη μιας νέας default διαδρομής.
➜ ~ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=114 time=99.007 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=98.277 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=103.634 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=114 time=104.365 ms
— 8.8.8.8 ping statistics —
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 98.277/101.321/104.365/2.704 ms
Διασταυρωτικός έλεγχος
Έλεγξα τον πίνακα δρομολόγησης για τελευταία φορά για να δω ποια είναι η διαφορά μετά τη διαγραφή και προσθήκη της default διαδρομής.
➜ ~ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 10.212.134.152 UGScg ppp0
default 192.168.31.1 UGScIg en0
31.145.77.18/32 192.168.31.1 UGSc en0
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#14 UCS en0 !
169.254.38.179 10.212.134.152 UH ppp0
192.168.31 link#14 UCS en0 !
192.168.31.1/32 link#14 UCS en0 !
192.168.31.1 ec:41:18:ec:c6:bc UHLWIir en0 1179
192.168.31.147/32 link#14 UCS en0 !
192.168.31.147 a0:78:17:87:b4:88 UHLWI lo0
192.168.31.171 b8:bc:5b:6:28:18 UHLWI en0 1146
192.168.31.222 c:2c:54:e4:67:81 UHLWI en0 1163
192.168.31.255 ff:ff:ff:ff:ff:ff UHLWbI en0 !
224.0.0/4 link#19 UmCS ppp0
224.0.0/4 link#14 UmCSI en0 !
224.0.0.251 link#19 UHmW3I ppp0 3582
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI en0
239.255.255.250 link#19 UHmW3I ppp0 3557
255.255.255.255/32 link#19 UCS ppp0
255.255.255.255/32 link#14 UCSI en0 !
Τώρα, όλα λειτουργούν τέλεια. Η σύνδεση VPN μου είναι σταθερή και γρήγορη!
Bonus
Χρειάζομαι να διαγράφω και να προσθέτω μια νέα default διαδρομή όταν χρειάζεται να συνδεθώ στο VPN και κάθε μέρα χρειάζεται να συνδέομαι. Δεν θέλω να διαγράφω και να προσθέτω μια νέα διαδρομή χειροκίνητα και έγραψα ένα μικρό bash script για αυτή τη ρουτίνα.
Μπορείς να αποθηκεύσεις το script στη διαδρομή /usr/local/bin/ με sudo vim. Μετά από αυτό, μην ξεχάσεις να προσθέσεις δικαιώματα chmod για το script.
#!/bin/bash
FortiIP=$(netstat -rn | grep “10.212.134” | awk ‘{print $2}’)
sudo route delete default
sudo route add default $FortiIP
Αν διάβασες από την αρχή, πρέπει να πω ευχαριστώ! : )
Περισσότερα από τον Ercan
Δύο ακόμη ιστότοποι, ίδιος συγγραφέας, διαφορετικό έδαφος.
AI, LLMs, agents, εφαρμοσμένη ML.
Σημειώσεις πεδίου για AI workloads. Ανάλυση κόστους Bedrock, agent patterns, trade-offs αποθήκευσης διανυσμάτων, failure modes σε παραγωγή.
Επισκεφθείτε ercan.ai →Ο κόμβος. Σχετικά, συμβουλευτική, επικοινωνία.
Προσωπικός κόμβος και για τις δύο διαδρομές γραφής. Ποιος είμαι, πώς λειτουργεί η συμβουλευτική, πώς να επικοινωνήσετε.
Επισκεφθείτε ercanermis.com →