Problema FortiClient su M1 MacBookPro e Soluzione
Ho trovato una soluzione rapida per il problema di connettività del client VPN FortiClient con Apple M1 MacBookPro. Non è un grosso problema...

Devo connettermi alla VPN tramite FortiClient per lavorare e accedere ad alcune risorse in modo sicuro. Quando ho iniziato a lavorare per la mia azienda a marzo 2021, mi hanno dato un M1 MacBookPro. L'M1 MacBookPro è diverso dagli altri perché arriva con una nuova architettura CPU. Precedentemente, Apple utilizzava una CPU basata su Intel ma ora ha deciso di far funzionare macOS con una CPU basata su ARM e Apple l'ha chiamata M1 per ora.
Molti software non sono compatibili con ARM. A volte ho alcuni problemi come "Questo componente non è compatibile con la tua CPU".
Quando mi connettevo alla VPN tramite FortiClient v6.4.3.1325, sembrava connesso ma la mia velocità internet diventava troppo lenta. Normalmente, ho una velocità internet di 100MB/sec. Ho chiesto ai miei colleghi "avete problemi con la VPN e/o la velocità della VPN?" e mi hanno detto "NO!" Loro usano un MacBookPro un po' più vecchio del mio con una CPU basata su Intel e ho pensato fosse una situazione normale perché le versioni basate su Intel sono okay e stabili.
Ho iniziato a debuggare per trovare la causa radice e ho controllato la tabella di routing prima di connettermi alla 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 !
La mia tabella di routing sembra a posto. 192.168.31.1 è il mio router wireless e la rotta predefinita punta al mio router wireless. Va bene.
Dopo di che, mi sono connesso alla VPN tramite FortiClient e ho ricontrollato la mia tabella di routing. 10.212.134.152 è il mio indirizzo IP locale assegnato da 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 !
Il nostro servizio VPN non utilizza split-tunneling e link#19 o 10.212.134.152 dovrebbe essere il next hop per la rotta predefinita insieme al mio router wireless contemporaneamente.
Cancello la mia rotta predefinita!
Sì, ho deciso di manipolare manualmente la mia tabella di routing.
➜ ~ sudo route delete default
Password:
delete net defaultOra, il next hop dovrebbe essere il mio indirizzo ip locale FortiClient. È 10.212.134.152 nel mio caso. Questo indirizzo ip locale è dinamico e cambia ad ogni connessione perché DHCP assegna questo indirizzo ip.
Ora, come appare la mia tabella di routing? La rotta predefinita non dovrebbe esserci...
➜ ~ 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 è sparito dalla rotta predefinita. Bene! E ora, non posso accedere a internet. Come rotta predefinita, il mio router wireless è ancora nella tabella di routing ma FortiClient lo sta usando per rimanere connesso alla VPN. Sì, sono ancora connesso a internet ma non ho un 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
Aggiungiamo una nuova rotta predefinita...
➜ ~ sudo route add default 10.212.134.152
add net default: gateway 10.212.134.152Ora, posso fare ping a 8.8.8.8 dopo aver aggiunto una nuova rotta predefinita.
➜ ~ 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
Verifica incrociata
Ho controllato la tabella di routing per l'ultima volta per vedere qual è la differenza dopo aver cancellato e aggiunto la rotta predefinita.
➜ ~ 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 !
Ora, tutto funziona perfettamente. La mia connessione VPN è stabile e veloce!
Bonus
Devo cancellare e aggiungere una nuova rotta predefinita ogni volta che devo connettermi alla VPN e ogni giorno devo connettermi. Non voglio cancellare e aggiungere manualmente una nuova rotta e ho scritto un piccolo script bash per questa routine.
Puoi salvare lo script nel percorso /usr/local/bin/ con sudo vim. Dopodiché, non dimenticare di aggiungere i permessi chmod per lo script.
#!/bin/bash
FortiIP=$(netstat -rn | grep “10.212.134” | awk ‘{print $2}’)
sudo route delete default
sudo route add default $FortiIP
Se hai letto dall'inizio, dovrei dirti grazie! : )
Altro da Ercan
Altri due siti, stesso autore, terreno diverso.
IA, LLMs, agenti, ML applicato.
Note sul campo su workload IA. Analisi dei costi Bedrock, pattern di agenti, trade-off di storage vettoriale, failure mode in produzione.
Visita ercan.ai →L'hub. Chi sono, consulenza, contatti.
Hub personale per entrambe le tracce di scrittura. Chi sono, come funziona la consulenza, come contattarmi.
Visita ercanermis.com →