Condividere Ollama sulla propria rete locale (famiglia, team)
Eseguire Ollama come server sulla rete locale cambia tutto: una sola GPU, più utenti. Il coniuge sul suo MacBook, lo sviluppatore sul suo PC fisso, il bambino sul tablet — tutti inviano richieste allo stesso daemon, senza duplicare 30 GB di modelli. Questa guida mostra come esporre Ollama sulla rete locale in modo corretto, senza renderlo accessibile al mondo intero.
#Perché usare un server Ollama in rete locale?
Per impostazione predefinita, Ollama ascolta soltanto su 127.0.0.1:11434, quindi solo la macchina su cui è in esecuzione può accedervi. È sicuro, ma spreca le capacità di una GPU. Una RTX 4090 o un Mac Studio M4 Max serve da 3 a 5 utenti contemporaneamente senza problemi con modelli 7B–14B Q4.
- Condividere la VRAM
- Un solo modello caricato in memoria per l'intera casa o l'intera squadra — nessuna copia ridondante.
- Centralizzare i modelli
- 150 GB di GGUF salvati una volta sul server, mai sui laptop.
- Standardizzare le versioni
- Tutti usano lo stesso Qwen 3.5 9B Q4 — niente più differenze di qualità tra le postazioni.
- Risparmiare energia della batteria
- I laptop non calcolano niente — inviano semplicemente un POST HTTP al server fisso.
#Prerequisiti
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
- Ollama installato
- Sulla macchina che ospiterà il server (Linux, macOS o Windows). Idealmente, la macchina con la GPU migliore.
- IP fisso o DNS locale
- Il server deve mantenere lo stesso indirizzo IP. Prenotazione DHCP sul router o IP statico. In alternativa, hostname.local tramite mDNS.
- Rete attendibile
- Wi-Fi domestico con WPA2/3, oppure una VLAN del team. Niente Wi-Fi pubblico condiviso.
- Privilegi di amministratore
- Per modificare il firewall e il servizio di sistema (systemd, launchd, services.msc).
#1. Esporre Ollama con OLLAMA_HOST=0.0.0.0
Ollama legge due variabili d'ambiente chiave: OLLAMA_HOST definisce l'interfaccia di ascolto, OLLAMA_ORIGINS definisce le origini CORS consentite. Per passare in modalità server, si cambia OLLAMA_HOST da 127.0.0.1 a 0.0.0.0 (tutte le interfacce).
#Linux (systemd)
Sulle distribuzioni moderne, Ollama viene eseguito tramite systemd. Si modifica l'override del servizio anziché il file di base: così la modifica viene mantenuta anche dopo gli aggiornamenti del pacchetto.
Nell'editor che si apre, incolla questo blocco tra le righe commentate:
Verifica che ss -tlnp mostri effettivamente Ollama su 0.0.0.0:11434 e non più soltanto su 127.0.0.1:11434.
#Windows
Su Windows, Ollama legge le variabili d'ambiente dell'utente all'avvio. Il metodo corretto: aggiungere OLLAMA_HOST alle variabili dell'utente, poi riavviare il servizio dalla barra delle applicazioni (clic destro sull'icona → Quit Ollama, poi riavviare).
#2. Aprire il firewall per la LAN
Una volta che Ollama è in ascolto su 0.0.0.0, il firewall deve consentire l'accesso alla porta 11434 — ma solo dalla rete locale. Non aprire mai la porta 11434 su Internet: Ollama non dispone di alcuna autenticazione nativa.
#UFW (Ubuntu, Debian)
Adatta 192.168.1.0/24 alla tua sottorete effettiva (ip a per verificare). Se lasci ufw allow 11434 senza restrizioni sull'origine e la macchina è esposta tramite port forwarding, offri Ollama al mondo intero — con accesso anonimo.
#iptables (senza UFW)
#Firewall di Windows Defender
#3. Particolarità di macOS
Su macOS, Ollama funziona come un'app GUI (icona nella barra dei menu) che avvia il daemon in background. Le variabili d'ambiente definite nella shell non vengono viste dall'app GUI: bisogna usare launchctl o modificare l'app.
- 01Chiudere completamente OllamaClicca sull'icona del lama nella barra dei menu → Quit Ollama. Verifica con ps aux | grep ollama che non sia più in esecuzione nulla.
- 02Definire la variabile a livello di launchctlIn un terminale: launchctl setenv OLLAMA_HOST "0.0.0.0:11434" poi launchctl setenv OLLAMA_ORIGINS "*". Queste variabili vengono ereditate da tutte le app GUI avviate successivamente.
- 03Riavviare Ollama.appApri Applicazioni → Ollama.app. L'app rileggerà l'ambiente e si metterà in ascolto su 0.0.0.0.
- 04Mantenere le impostazioni dopo il riavviolaunchctl setenv non sopravvive al riavvio. Per renderlo permanente, crea un LaunchAgent ~/Library/LaunchAgents/com.ollama.env.plist (vedi la documentazione Apple) oppure esegui nuovamente i comandi setenv da uno script di avvio.
#4. Connettere i client
Da un'altra macchina della LAN, l'indirizzo IP del server sostituisce localhost in tutti i comandi e le configurazioni.
Per la CLI ollama stessa, esportiamo OLLAMA_HOST dal lato del client — il comando ollama run pointe verso il server remoto.
- Open WebUI
- In Settings → Connections, aggiungi l'URL http://192.168.1.42:11434 come Ollama API URL. L'interfaccia funziona su qualsiasi macchina della LAN.
- Continue.dev (VS Code)
- Nel file config.json, il campo apiBase del provider ollama punta verso http://192.168.1.42:11434.
- LangChain Python
- Ollama(base_url="http://192.168.1.42:11434", model="qwen3.5:9b") — identico a localhost in locale.
#5. Reverse proxy Nginx + autenticazione di base
Esporre Ollama sulla LAN senza protezioni va bene per la famiglia, ma per un team è meglio aggiungere almeno l'autenticazione HTTP Basic e un po' di logging. Nginx permette di farlo in 20 righe.
Importante: con questa configurazione, Ollama deve tornare ad ascoltare su 127.0.0.1:11434 (non su 0.0.0.0). Nginx è in ascolto su un'interfaccia pubblica sulla porta 8080, verifica l'IP e la password, poi inoltra le richieste a Ollama in locale. I client si collegano ora a http://alice:motdepasse@192.168.1.42:8080.
#Buone pratiche di sicurezza
- Limitare l'accesso in base all'indirizzo IP di origine nel firewall
- Per una doppia protezione: anche con Nginx, mantieni la regola UFW/iptables. Un bug in Nginx o un bind errato può esporre direttamente la porta 11434.
- Disattivare /api/create dall'esterno
- Questo endpoint permette di inviare un Modelfile arbitrario. Con Nginx, aggiungi location /api/create { return 403; }.
- Registrare le richieste nei log
- L'access_log di Nginx mostra chi chiama cosa. Utile per individuare un'esposizione dell'indirizzo IP del server o un client configurato male che invia richieste a raffica.
- Quote per utente
- Non è una funzione nativa di Ollama. Per limitare Bob quando avvia un grosso lavoro di generazione alle 3 del mattino, valuta LiteLLM o Open WebUI come livello middleware.
- Eseguire un backup di ~/.ollama
- Il server centralizzato diventa un unico punto di guasto. La cartella dei modelli può occupare 100 GB o più — come minimo, uno script rsync verso un disco esterno.
#Risoluzione dei problemi
- Errore « Connection refused » dal client
- Ollama ascolta sempre su 127.0.0.1. Controlla ss -tlnp | grep 11434 sul server — se compare 127.0.0.1:11434, la variabile OLLAMA_HOST non è vista dal servizio. Ricontrolla systemctl show ollama | grep Environment.
- Connection timed out
- Il firewall blocca la connessione. Prova nc -zv 192.168.1.42 11434 dal client: se ottieni un timeout, è il firewall. Se ottieni l'errore refused, è Ollama che non è in ascolto.
- Errore CORS in Open WebUI
- OLLAMA_ORIGINS=* mancante o non applicato. Per il debug: curl -H "Origin: http://autre-machine" -I http://192.168.1.42:11434 — la risposta deve contenere Access-Control-Allow-Origin.
- macOS: variabile ignorata dopo riavvio
- launchctl setenv non persiste. Serve un LaunchAgent. Soluzione pratica: uno script ~/start-ollama.sh che fa launchctl setenv + open Ollama.app, da avviare manualmente dopo ogni riavvio.
- Rallentamento improvviso con più utenti
- Ollama elabora le richieste in coda per modello. Con 3 utenti simultanei su un 14B, il 3° attende. OLLAMA_NUM_PARALLEL=2 (variabile d'ambiente) consente 2 richieste in parallelo al prezzo di più VRAM.
- Il modello viene scaricato dalla memoria tra le richieste
- Per impostazione predefinita, Ollama rimuove un modello dalla memoria 5 minuti dopo l'ultima richiesta. OLLAMA_KEEP_ALIVE=24h ne forza la permanenza in VRAM — fondamentale per un server condiviso.
#Per approfondire
Il server Ollama condiviso è la base di una configurazione multiutente. Da qui, tre possibili sviluppi naturali:
- Aggiungere un'interfaccia chat condivisa
- La guida Open WebUI con Ollama: guida completa spiega in dettaglio come configurare un'interfaccia simile a ChatGPT, con supporto per più utenti, che si collega a questo server.
- Distribuire in produzione con Docker
- La guida Distribuire un LLM in produzione con Docker Compose mostra la stessa architettura in versione containerizzata con Traefik e HTTPS.
- Estendere a un chatbot intranet
- La guida Distribuire un chatbot IA per il proprio team su intranet aggiunge autenticazione SSO, monitoraggio e backup delle conversazioni.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.