Ollama auf Ubuntu: Zugriff im Netzwerk konfigurieren – Update-sicher!

Wer lokale Sprachmodelle (LLMs) mit Ollama unter Linux betreibt, kennt das Szenario: Nach der Installation läuft der Dienst wunderbar, aber er ist standardmäßig nur unter 127.0.0.1 (localhost) erreichbar.

Das ist aus Sicherheitsgründen sinnvoll, aber unpraktisch, wenn man:

  • Von einem anderen PC im Netzwerk auf die API zugreifen möchte.
  • Eine Web-UI (wie Open WebUI) in einem Docker-Container laufen hat, die mit dem Host kommunizieren muss.
  • Den Server als zentralen Inferenz-Knoten nutzen will.

In diesem Tutorial zeige ich dir, wie du Ollama dazu bringst, auf allen IP-Adressen (0.0.0.0) zu lauschen. Das Wichtigste dabei: Wir machen das so, dass die Konfiguration auch nach einem Ollama-Update erhalten bleibt!

Das Problem mit dem direkten Editieren

Viele Anleitungen im Netz raten dazu, die Datei /etc/systemd/system/ollama.service (oder /lib/systemd/...) direkt zu bearbeiten.
Tu das nicht!
Wenn du Ollama aktualisierst (z. B. via curl Installationsscript oder Paketmanager), wird diese Datei oft überschrieben. Deine mühsam eingestellte Konfiguration ist dann weg und der Dienst ist wieder offline für externe Zugriffe.

Die Lösung: Systemd Drop-In Overrides

Der saubere Weg unter Ubuntu (und anderen Systemd-Distros) ist ein sogenannter „Drop-In Override“. Dabei legen wir eine zusätzliche Datei an, die nur unsere Änderungen enthält. Systemd kombiniert diese dann automatisch mit der Originaldatei.

Schritt 1: Den Override erstellen

Wir setzen die Umgebungsvariable OLLAMA_HOST auf 0.0.0.0:11434.

Am schnellsten und sichersten geht das über das Terminal, indem wir das Verzeichnis erstellen und die Konfiguration direkt hineinschreiben:

# 1. Verzeichnis für Overrides erstellen (falls noch nicht vorhanden)
sudo mkdir -p /etc/systemd/system/ollama.service.d

# 2. Die Konfiguration in die Datei 'override.conf' schreiben
echo '[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"' | sudo tee /etc/systemd/system/ollama.service.d/override.conf

Schritt 2: Systemd neu laden und Ollama neustarten

Damit Ubuntu die neue Datei bemerkt und anwendet, führen wir folgende Befehle aus:

# Systemd Konfigurationen neu einlesen
sudo systemctl daemon-reload

# Ollama Service neustarten
sudo systemctl restart ollama

Schritt 3: Überprüfung

Jetzt prüfen wir, ob der Server wirklich auf allen Interfaces lauscht. Dafür nutzen wir ss (Socket Statistics):

ss -tuln | grep 11434

Die Ausgabe sollte nun so aussehen:

tcp   LISTEN 0      4096         0.0.0.0:11434       0.0.0.0:*

Wichtig ist hier das 0.0.0.0. Steht dort immer noch 127.0.0.1, hat es nicht geklappt.

Sicherheitshinweis: Firewall nicht vergessen!

Da Ollama standardmäßig keine Authentifizierung (kein Passwort) besitzt, ist dein LLM-Server jetzt für jeden erreichbar, der deine IP-Adresse erreichen kann. Im Internet wäre das fatal.

Nutze die Ubuntu Firewall (ufw), um den Zugriff einzuschränken.

Beispiel: Nur Zugriff aus dem Heimnetzwerk (z.B. 192.168.178.x) erlauben:

sudo ufw allow from 192.168.178.0/24 to any port 11434
sudo ufw enable
sudo ufw status

Typische Fehler und Lösungen (Troubleshooting)

Hier sind die häufigsten Stolpersteine, die bei der Einrichtung auftreten können.

Fehler 1: „Editing canceled: temporary file is empty“

Symptom:
Du hast versucht, sudo systemctl edit ollama.service zu nutzen, aber nach dem Schließen des Editors erschien diese Fehlermeldung und nichts wurde gespeichert.

Ursache:
Der Editor (meist nano) wurde geschlossen, ohne dass die Datei gespeichert wurde, oder du hast nur die auskommentierten Zeilen (#) gesehen und nichts Eigenes hinzugefügt. Systemd verwirft leere Dateien sofort.

Lösung:
Verwende die im Tutorial oben beschriebene Methode mit echo und tee. Sie ist weniger fehleranfällig als das manuelle Editieren.

Fehler 2: Verbindung abgelehnt (Connection Refused) von extern

Symptom:
ss -tuln zeigt an, dass Ollama auf 0.0.0.0:11434 läuft, aber du kannst von einem anderen PC nicht darauf zugreifen (curl http://<IP>:11434 schlägt fehl).

Ursache:
Meistens blockiert die Firewall.

Lösung:
Prüfe den Status der Firewall:

sudo ufw status

Stelle sicher, dass Port 11434 erlaubt ist (siehe Abschnitt „Sicherheitshinweis“ oben).

Fehler 3: Ollama startet nicht mehr nach der Änderung

Symptom:
Nach dem restart Befehl kommt eine Fehlermeldung oder der Status ist failed.

Ursache:
Oft ein Tippfehler in der override.conf.

Lösung:
Prüfe den Status und die Logs:

sudo systemctl status ollama

Wenn dort ein Syntaxfehler gemeldet wird, korrigiere die Datei erneut. Achte darauf, dass Environment="OLLAMA_HOST=0.0.0.0:11434" genau so geschrieben ist (Großschreibung beachten, keine Leerzeichen um das = innerhalb der Anführungszeichen).

Fehler 4: Variable wird ignoriert

Symptom:
Du hast alles eingestellt, aber Ollama lauscht immer noch nur auf localhost.

Ursache:
Du hast vergessen, sudo systemctl daemon-reload auszuführen, bevor du den Service neugestartet hast. Systemd weiß noch nichts von der neuen Datei.

Lösung:
Führe sudo systemctl daemon-reload und danach sudo systemctl restart ollama aus.

Fazi

Mit dem Einsatz von systemd Drop-In Files (override.conf) stellst du sicher, dass dein Ollama-Server auch nach Updates zuverlässig erreichbar bleibt. Es ist die sauberste Art, Dienste unter Linux zu konfigurieren.

Previous