Come bloccare l'accesso a internet a un'app su Mac
Modi pratici per impedire a un'app di usare internet su macOS, senza rompere il resto del sistema.
- macOS
- Security
- Privacy
- Tutorial
Un'app che hai comprato nel 2022 telefona ancora a casa ad ogni lancio. Un gioco vuole scaricare un aggiornamento da 3 GB mentre sei su un hotspot. Una utility di scansione insiste a controllare gli aggiornamenti più volte. Vuoi bloccare l'accesso a internet di un'app su Mac del tutto — senza disinstallarla, e senza rompere il resto del sistema.
La buona notizia: macOS ti dà diversi modi per bloccare l'accesso a internet di un'app su Mac di cui gli utenti hanno davvero bisogno. La cattiva: ognuno ha un compromesso diverso, e la scelta sbagliata o fallirà silenziosamente o romperà cose che non intendevi rompere. Ecco il playbook pratico.
I quattro modi per bloccare un'app dall'accesso a internet su Mac che gli utenti dovrebbero conoscere
In ordine grossolano di come la maggior parte delle persone dovrebbe scegliere:
- Little Snitch — firewall in uscita dedicato. Regole per app, prompt alla prima connessione, GUI per editare.
- LuLu — gratuito, open-source, firewall in uscita di Objective-See. Meno rifinito di Little Snitch, idea core simile.
- macOS Application Firewall + un network filter — il firewall integrato gestisce solo l'in entrata. Per il blocco in uscita, ti serve un'estensione di rete di terze parti o una regola
pf. - Blocco via
/etc/hosts— grossolano, parziale, ma utile per endpoint di telemetria noti.
Per una singola app che vuoi completamente offline, le opzioni 1 o 2 sono la risposta giusta. Le altre sono situazionali.
Opzione 1: Little Snitch (lo standard)
Little Snitch installa una Network Extension che intercetta le connessioni in uscita. Quando un'app che non ha mai visto cerca di telefonare a casa, Little Snitch mostra un prompt: permetti una volta, permetti per sempre, nega una volta, nega per sempre — con scope opzionali (solo questo hostname, qualsiasi porta, ecc.).
Per bloccare un'app del tutto:
- Apri Little Snitch → Network Monitor → Rules.
- Cerca il nome dell'app.
- O elimina le sue regole esistenti e affidati a un prompt di nega-default la prossima volta, o aggiungi un esplicito "Nega — qualsiasi processo da /Applications/YourApp.app — qualsiasi connessione".
- Esci e rilancia l'app target.
Little Snitch è software a pagamento con una demo gratuita (3 ore per sessione). Per uno strumento su cui ti affiderai a livello kernel, pagare una volta è la mossa giusta.
Scope di regola che contano
- Path del processo — Little Snitch chiave sul path su disco, quindi aggiornare un'app via Sparkle può ri-promptarla. Riapprova o imposta la regola su "qualsiasi versione".
- Processi ausiliari — app come Slack, Discord, e Chrome hanno binari helper che hanno bisogno delle proprie regole. Se permetti il genitore e dimentichi l'helper, il traffico può sgattaiolare. Un monitor come ova raggruppa gli helper sotto il genitore così puoi vedere quando questo accade.
Opzione 2: LuLu (gratuito)
LuLu fa quello che fa Little Snitch, con un set di feature più piccolo. Stesso modello di Network Extension, stesso flusso prompt-e-regola. Non mostrerà grafici di traffico o farà filtraggio basato su hostname così pulitamente, ma per un caso d'uso "blocca questa singola app" è perfettamente adeguato.
Scaricalo da objective-see.org, trascina ad Applicazioni, concedi il permesso Network Extension, e aggiungi una regola di nega per il binario che vuoi silenziare.
Opzione 3: macOS firewall integrato (limitato)
L'Application Firewall di macOS vive in Impostazioni di Sistema → Rete → Firewall. Blocca le connessioni in entrata. Non blocca le uscite. Quindi per la domanda "ferma la mia app dal parlare con internet", il firewall integrato non è la risposta.
Se vuoi anche bloccare in entrata — ad esempio, un'app esegue un server locale che non vuoi esposto — attiva il firewall, clicca Opzioni, e aggiungi l'app alla lista di nega.
Opzione 4: blocchi /etc/hosts (parziale)
Per endpoint di telemetria specifici, puoi blackholare l'hostname:
sudo nano /etc/hostsAggiungi:
0.0.0.0 telemetry.example.com
0.0.0.0 analytics.example.comSalva con Ctrl-O, esci con Ctrl-X. Poi flusha il DNS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponderFunziona solo per app che effettivamente consultano il DNS di sistema. Le app che hardcodano IP o usano il proprio DNS bypassano /etc/hosts del tutto. I browser che usano DoH lo bypassano. Quindi tratta /etc/hosts come un fucile di precisione per endpoint noti, non un blocco general-purpose.
Il passo di verifica che tutti saltano
Impostare il blocco è metà del lavoro. L'altra metà è confermare che funzioni. Qui uno strumento di monitoraggio separato si guadagna il posto.
Il pattern:
- Imposta il blocco in Little Snitch / LuLu / file hosts.
- Apri ova nella tua barra dei menu. Campiona il traffico per app a circa 1 Hz.
- Lancia l'app target e usala. Cliccaci attorno. Attiva l'azione che usava telefonare a casa — controlla aggiornamenti, fai login, sincronizza.
- Guarda la riga per app. Se resta a 0 KB/s su e giù, il blocco regge. Se vedi qualsiasi cosa in uscita, hai una perdita.
Due motivi per cui le perdite accadono:
- Processo ausiliario non coperto. L'app principale è negata, ma
Slack HelperoUpdater.appha la propria regola che è ancora allow. - Connessione cachata prima del blocco. L'app aveva aperto una connessione di lunga durata prima che la regola esistesse. Esci dall'app del tutto (clic destro → Esci, o
Cmd-Q) e rilanciala.
Casi speciali
Bloccare un'app mantenendo l'accesso LAN
Alcune app hanno bisogno di parlare con il tuo speaker AirPlay o stampante locale ma non dovrebbero raggiungere internet. In Little Snitch, imposta "nega qualsiasi" poi aggiungi un'eccezione di permesso per LAN e Multicast/Broadcast. Il permesso Local Network di macOS regola anche questo — controlla Impostazioni di Sistema → Privacy e Sicurezza → Rete Locale e revocalo se l'app non ha bisogno della LAN affatto.
Bloccare un'app su Wi-Fi ma permettere su ethernet
Little Snitch supporta profili. Creane uno per "Coffee Shop" e uno per "Casa", attacca regole diverse, cambia via la barra dei menu.
Bloccare solo gli aggiornamenti, permettere tutto il resto
Gran parte delle app separa il traffico di aggiornamento dal traffico di feature. Trova il binario dell'updater (spesso dentro YourApp.app/Contents/Library/LoginItems/ o /Library/LaunchDaemons/), e aggiungi una regola di nega per quello specifico path. Esegui l'app, guarda ova — le feature dovrebbero ancora funzionare, gli aggiornamenti dovrebbero fallire con un errore di rete nel log.
Verifica che i tuoi blocchi firewall reggano davvero
ova mostra il traffico live per app così puoi confermare che una regola Little Snitch abbia fatto il suo lavoro — locale, firmato, ~3 MB.
Un esempio elaborato: silenziare una utility chiacchierona
Diciamo che hai comprato una utility di screenshot tre anni fa. Licenza a vita, era silenziosa, ora telefona a casa ad ogni lancio e non ti fidi della nuova proprietà.
- Installa Little Snitch. La trial va bene per la prima ora per vedere come si sentono le regole.
- Lancia la utility di screenshot. Little Snitch prompta: "Snipster vuole connettersi a api.snipster.app". Clicca Nega → Per sempre → qualsiasi porta.
- Usa l'app per una settimana. Se le feature funzionano, il nega ha tenuto. Se una feature si rompe, guarda cosa ha provato a chiamare — sarà nel log di Little Snitch — e decidi se permettere l'endpoint specifico.
- Esegui ova accanto. Conferma che il rate per app resti a 0 KB/s durante l'uso normale.
Questo pattern funziona per qualsiasi app che non ha effettivamente bisogno di internet per fare il suo lavoro localmente.
Cosa i blocchi non sistemeranno
Qualche cosa di cui essere onesti:
- Notifiche push via APNs. macOS instrada Apple Push attraverso
apsd, non l'app. Bloccare l'app non blocca le sue notifiche. Disabilita le notifiche nelle Impostazioni di Sistema invece. - System extension e daemon. Alcune app installano daemon di background sotto
/Library/LaunchDaemons/. Uccidere l'app non uccide il daemon. Usa l'uninstaller ufficiale dell'app, o elenca i daemon vialaunchctl list | grep -i appname. - App che hardcodano IP. Raro, ma esiste. Blocca per IP piuttosto che hostname in Little Snitch.
- App App Store sandboxed che usano servizi XPC. A volte l'app visibile all'utente è silenziosa e un helper XPC fa il lavoro di parlare. Stesso fix dei processi ausiliari — trovalo nell'albero dei processi di Little Snitch, aggiungi una regola.
Perché "monitor + firewall" è il setup duraturo
Puoi eseguire solo un firewall. Puoi eseguire solo un monitor. La maggior parte degli utenti Mac esperti esegue entrambi:
- Il firewall (Little Snitch / LuLu) imposta la policy e blocca a livello kernel.
- Il monitor (ova o simile) mostra la realtà — cosa sta ancora parlando, quanto, quando.
I due rispondono a domande diverse. "La mia regola ha funzionato?" è una domanda da monitor. "Quale nuova app sta cercando di telefonare a casa?" è una domanda da prompt firewall. Insieme ti danno un quadro completo.
In conclusione
Per bloccare l'accesso a internet di un'app su Mac end-to-end: usa Little Snitch o LuLu per il blocco, l'Application Firewall di macOS solo se hai bisogno anche dell'in entrata, e /etc/hosts per endpoint noti quando il blocco basato su DNS basta. Poi verifica con un monitor, perché una regola che non hai confermato è una regola che non hai davvero.
La maggior parte delle app funziona bene offline una volta che tagli la rete. Quelle che non lo fanno, lo scoprirai in fretta — e avrai imparato qualcosa di utile su quali feature erano effettivamente locali in primo luogo.