Start / Poradniki / Rozwiązywanie problemów / Windows

Ollama „connection refused” — API nieosiągalne, porty i rozwiązania

WindowsLinuxmacOS

Autor: Jakub Rusinowski · Ostatnia aktualizacja: 10 lipca 2026

Edukator AI i prowadzący warsztaty z wdrażania lokalnych modeli LLM

Komunikat błędu

curl: (7) Failed to connect to localhost port 11434: Connection refused

Kiedy się pojawia

Twoja aplikacja, skrypt albo interfejs nie może dosięgnąć API Ollamy (lub serwera LM Studio na porcie 1234). curl kończy się „connection refused”, Open WebUI nie pokazuje żadnych modeli, rozszerzenia VS Code zgłaszają, że serwer jest nieosiągalny, albo telefon czy laptop w tej samej sieci nie może się połączyć, choć sam host owszem. Model działa bez zarzutu, gdy rozmawiasz z nim w terminalu — psuje się wyłącznie połączenie z API.

Co się właściwie dzieje

„Connection refused” znaczy, że pod adresem, na który zadzwoniłeś, nic nie nasłuchuje — to problem sieciowy, nigdy problem z modelem. Realnych przyczyn są tylko cztery: proces serwera w ogóle nie działa; działa, ale jest przypięty do 127.0.0.1 (tylko localhost), a ty łączysz się z innej maszyny, kontenera albo maszyny wirtualnej; port zajmuje coś innego, więc serwer nigdy nie wystartował czysto; albo między klientem a serwerem stoi granica sieciowa — zapora, Docker lub WSL2. Rozwiązania poniżej sprawdzają je w tej kolejności, od najszybszego.

Jak to naprawić

1. Sprawdź, czy cokolwiek nasłuchuje na porcie Najczęstsze rozwiązanie

Nie zgaduj — popatrz. Jeśli na porcie 11434 nic nie nasłuchuje, uruchom serwer i obejrzyj wyjście pod kątem błędów. Świeża instalacja, której nigdy nie uruchomiono, usługa, która padła po aktualizacji, i zamknięta aplikacja z zasobnika systemowego to nudne, ale najczęstsze realia. Jeśli polecenie pokazuje nasłuchujący proces, przejdź od razu do rozwiązania z adresem bindowania.

multiple shells — see comments
# macOS / Linux
lsof -i :11434        # or: ss -ltnp | grep 11434

# Windows (PowerShell)
Get-NetTCPConnection -LocalPort 11434 -State Listen

# Nothing listening? Start it and read the output:
ollama serve
# Linux service install:
sudo systemctl status ollama
Sprawdź, co zmieści się na twoim sprzęcie — sprawdź, które modele twój sprzęt udźwignie, gdy połączenie już działa
Otwórz kalkulator VRAM →

2. Łączysz się z innego urządzenia? Zbinduj na 0.0.0.0 zamiast localhost

Domyślnie Ollama nasłuchuje na 127.0.0.1 — czyli tylko z tej samej maszyny. Każde połączenie z telefonu, innego komputera czy maszyny wirtualnej zostanie z założenia odrzucone. Ustaw OLLAMA_HOST=0.0.0.0:11434, zrestartuj usługę i łącz się realnym adresem IP hosta (na przykład http://192.168.1.50:11434), nigdy przez „localhost” ze zdalnego urządzenia. LM Studio ma ten sam przełącznik: włącz „Serve on Local Network” w zakładce serwera. I nigdy nie wystawiaj tych portów do internetu — te API nie mają żadnego uwierzytelniania; do zdalnego dostępu użyj VPN-u albo sieci typu tailnet.

multiple shells — see comments
# Linux (systemd)
sudo systemctl edit ollama
#   [Service]
#   Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama

# macOS
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
# then quit & reopen the Ollama app

# Windows: set OLLAMA_HOST=0.0.0.0:11434 in Environment Variables, restart Ollama

3. Kontenery Dockera: „localhost” to kontener, nie twoja maszyna

Problem numer jeden w Open WebUI: wewnątrz kontenera localhost:11434 wskazuje na sam kontener — a tam Ollama nie działa. Użyj host.docker.internal (Docker Desktop na Macu i Windowsie) albo mapowania host-gateway na Linuksie. Jeśli sama Ollama działa w kontenerze, opublikuj port przez -p 11434:11434.

bash
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  ghcr.io/open-webui/open-webui:main

4. WSL2: Windows i Linux mają dwa różne „localhosty” — czasami

Nowsze wersje WSL2 przekierowują localhost automatycznie: aplikacje windowsowe sięgają do serwera uruchomionego w WSL pod localhost:11434, a WSL w drugą stronę do Ollamy na Windowsie. To przekierowanie psuje się jednak po hibernacji, pod VPN-em i po zmianach networkingMode. Jeśli localhost zawodzi w poprzek granicy, wybierz realny adres drugiej strony: z WSL host Windows jest osiągalny pod adresem bramy, a z Windowsa WSL pod adresem, który wypisuje wsl hostname -I. wsl --shutdown i ponowny start również resetują zepsute przekierowanie.

bash
# From inside WSL2, find and use the Windows host:
ip route show | grep default   # e.g. 172.29.0.1
curl http://172.29.0.1:11434/api/tags

# Forwarding glitched? Reset WSL entirely:
wsl --shutdown

5. Port zajęty: znajdź lokatora albo przenieś Ollamę

Jeśli ollama serve kończy się komunikatem „address already in use”, port należy do innego procesu — bardzo często do *drugiej* kopii Ollamy: aplikacja desktopowa siedzi w zasobniku, a ty uruchamiasz ollama serve w terminalu. Zamknij aplikację z zasobnika albo ubij PID trzymający port. Możesz też przenieść Ollamę na zupełnie inny port — pamiętaj tylko, żeby zaktualizować wszystkich klientów.

bash
# Who owns the port?
lsof -i :11434            # then: kill <PID>

# Or run Ollama elsewhere:
OLLAMA_HOST=127.0.0.1:11500 ollama serve
curl http://localhost:11500/api/tags

6. Nadal odrzuca połączenia z innych maszyn? To zapora

Po zbindowaniu na 0.0.0.0 zapora systemowa wciąż może odrzucać połączenia z zewnątrz: przepuść TCP 11434 przez ufw albo firewalld na Linuksie, zatwierdź na macOS monit o zezwolenie na połączenia przychodzące, a na Windowsie dodaj regułę przychodzącą. Najszybszy test to wyłączenie zapory na chwilę — jeśli połączenia ruszą, winna była reguła. Sprawdź całość ze zdalnego urządzenia poleceniem curl http://<host-ip>:11434/api/tags; lista modeli w formacie JSON oznacza, że działa od początku do końca.

multiple shells — see comments
# Linux (ufw) — allow only your LAN:
sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp

# Windows (admin PowerShell):
New-NetFirewallRule -DisplayName "Ollama" -Direction Inbound -LocalPort 11434 -Protocol TCP -Action Allow

Dotyczy także: Linux · Apple

Powiązane

Model, który mieści się na większości zestawów:
Zobacz model i wymagania →

Najczęstsze pytania

Na jakim porcie domyślnie działa Ollama?

TCP 11434, przypięty do 127.0.0.1, czyli tylko localhost. Serwer LM Studio domyślnie stoi na porcie 1234. Oba sprawdzisz w przeglądarce: http://localhost:11434 zwraca „Ollama is running”, a /api/tags oddaje listę twoich modeli w formacie JSON.

Dlaczego mogę rozmawiać w terminalu, a API zwraca connection refused?

Prawdopodobnie wcale nie możesz — ollama run uruchamia tymczasowy serwer, jeśli żaden nie działa, i wyłącza go razem z czatem. Żeby klienci API mogli się połączyć w dowolnym innym momencie, musi działać osobny, długożyjący serwer: aplikacja desktopowa, ollama serve albo usługa systemd.

Czy ustawienie OLLAMA_HOST=0.0.0.0 jest bezpieczne?

W domowej sieci za NAT-em zwykle tak — udostępnia API wyłącznie urządzeniom w twojej sieci. NIE jest natomiast bezpieczne przekierowanie tego portu do internetu: API nie ma żadnego uwierzytelniania, więc dowolna osoba mogłaby korzystać z twojego GPU, kasować modele albo zapełnić ci dysk. Do dostępu spoza domu użyj sieci mesh VPN, na przykład Tailscale, zamiast otwartego portu.

Open WebUI pokazuje „Ollama not detected”, choć Ollama działa. Dlaczego?

Bo Open WebUI działa w Dockerze, a jego „localhost” to kontener. Ustaw OLLAMA_BASE_URL na http://host.docker.internal:11434 (na Linuksie razem z flagą add-host i host-gateway), a znajdzie API natychmiast.

Na serwerze curl działa, ale zdalnie połączenie wygasa, zamiast zostać odrzucone. To inny problem?

Tak, i to użyteczna wskazówka: „refused” znaczy, że adres jest osiągalny, tylko nikt nie nasłuchuje, a *timeout* — że pakiety w ogóle nie dotarły, czyli winna jest zapora albo routing. Sprawdź regułę zapory dla portu oraz to, czy oba urządzenia są naprawdę w tej samej sieci; izolacja klientów w sieci dla gości to klasyczny winowajca.