Jeśli chcesz, aby wybrane aplikacje ZimaOS wysyłały ruch przez komercyjną sieć VPN, wątek społeczności wskazuje na Gluetun, zamiast traktować pozycję WireGuard w App Store jako prosty interfejs do przesyłania własnej konfiguracji klienta. Autor pierwotnie pytał, jak uruchomić WireGuard jako klienta, a następnie znalazł Gluetun w ZimaOS i opisał podejście oparte na sieci Docker.
Najważniejsze jest to, że docelowa aplikacja współdzieli przestrzeń nazw sieci Gluetun. Gluetun zarządza tunelem VPN, zaporą sieciową i publikowanymi portami, a qBittorrent lub inna aplikacja korzysta następnie z tego stosu sieciowego zamiast z własnego zwykłego interfejsu bridge.
WireGuard i Tailscale w App Store ZimaOS to nie to samo co klient dostawcy VPN
Zima-Giorgio odpowiedział, że WireGuard i Tailscale są dostępne w App Store. Autor wyjaśnił następnie brakujący element: potrzebował klienckiego rozwiązania, w którym można zaimportować konfigurację dostawcy i użyć jej do kierowania ruchem aplikacji.
To rozróżnienie ma znaczenie. Tailscale i samodzielnie hostowany endpoint WireGuard są przydatne do prywatnego zdalnego dostępu do sieci, podczas gdy Gluetun został zaprojektowany konkretnie do łączenia obciążeń Docker przez obsługiwanych komercyjnych dostawców VPN za pomocą OpenVPN lub WireGuard.
Wykrycie Gluetun w wątku źródłowym
Autor napisał później, że ZimaOS zawiera Gluetun, choć wyszukanie ogólnego terminu „VPN” w App Store nie wskazywało na to w oczywisty sposób.
Zalecenie zawarte w źródle mówiło o zmianie sieci aplikacji kierującej ruch przez tunel ze zwykłego trybu bridge na przestrzeń nazw sieci Gluetun oraz usunięciu własnych publikowanych portów aplikacji, ponieważ powinien je publikować Gluetun.
network_mode: container:gluetun
Ta składnia jest poprawna, gdy zewnętrzny kontener dołącza po nazwie do już działającego kontenera Gluetun.
service:gluetun vs container:gluetun
Aktualna dokumentacja Gluetun rozróżnia dwa typowe przypadki użycia Compose:
# Ten sam projekt Compose
network_mode: "service:gluetun"
oraz:
# Oddzielny projekt Compose / zewnętrzny kontener
network_mode: "container:gluetun"
Obie formy pojawiły się w dyskusji społeczności. Właściwa zależy od tego, czy Gluetun i aplikacja korzystająca z routingu działają w tym samym stosie Compose.
Aktualny przewodnik po konfiguracji sieci kontenera Gluetun
Dlaczego qBittorrent nadal może ujawnić adres IP usługodawcy internetowego
Późniejszy użytkownik poinformował, że sam Gluetun wyświetlał w logach adres IP NordVPN, ale podczas testu qBittorrent nadal wyglądał na korzystający z adresu dostawcy internetu. Ten objaw oznacza, że „Gluetun jest połączony” oraz że „qBittorrent rzeczywiście współdzieli stos sieciowy Gluetun” to dwie kwestie, które należy testować osobno.
Sprawdź definicję kontenera qBittorrent i potwierdź, że jego tryb sieci jest rzeczywiście podłączony do Gluetun. Zwykły interfejs typu bridge obok Gluetun może sprawić, że qBittorrent będzie korzystać ze zwykłej trasy hosta.
Przenieś porty qBittorrent do kontenera Gluetun
Aktualna dokumentacja Gluetun stwierdza, że gdy inny kontener współdzieli jego stos sieciowy, porty aplikacji docelowej należy publikować w kontenerze Gluetun.
Na przykład, jeśli qBittorrent nasłuchuje wewnętrznie na porcie 8080:
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- "8080:8080"
qbittorrent:
image: your-qbittorrent-image
network_mode: "service:gluetun"
Nie publikuj tego samego portu qBittorrent w obu kontenerach. Spowoduje to konflikty portów opisane w wątku źródłowym.
Instrukcja mapowania portów Gluetun
Film przywołany w wątku społeczności
Późniejszy uczestnik wyraźnie stwierdził, że podczas próby skierowania qBittorrent przez Gluetun skorzystał z filmu DB Tech dotyczącego CasaOS. Ponieważ film jest częścią ścieżki rozwiązywania problemu opisanej w wątku źródłowym, został tu zachowany.
Film powstał przed opublikowaniem wątku dotyczącego ZimaOS i korzysta z CasaOS, więc użyj go do zrozumienia architektury Docker/Gluetun, zamiast dosłownie kopiować każdy krok w interfejsie.
Późniejszy użytkownik potwierdził, że niestandardowy stos Compose działa
W listopadzie 2025 roku inny członek społeczności stwierdził, że niezawodnym rozwiązaniem było wdrożenie qBittorrent i Gluetun razem jako niestandardowego stosu aplikacji/Compose oraz skonfigurowanie tam dostawcy VPN. Poinformował, że po uzyskaniu dostępu do qBittorrent przez wybrany port hosta ruch był kierowany przez VPN.
Wątek źródłowy zawiera link do utworzonego przez użytkownika fragmentu Gist dotyczącego tej konfiguracji. Pliki Compose innych twórców traktuj jako przykłady: przed wdrożeniem sprawdź zmienne środowiskowe, wersje obrazów, dane uwierzytelniające i ustawienia sieci.
Gluetun zapewnia wyłącznik awaryjny VPN
Aktualna dokumentacja Gluetun opisuje jego zaporę jako wyłącznik awaryjny VPN: gdy ścieżka VPN jest niedostępna, zapora blokuje ruch, który nie powinien opuszczać systemu przez zwykły interfejs. To jeden z powodów, dla których współdzielenie stosu sieciowego Gluetun jest lepszym rozwiązaniem niż samo uruchomienie kontenera VPN obok qBittorrent.
Nie wyłączaj reguł zapory Gluetun tylko po to, aby udostępnić port. Zamiast tego skonfiguruj właściwe trasy do sieci LAN i trasę wyjściową.
Celowo zezwól na dostęp do sieci LAN
Jeśli aplikacja kierowana przez VPN musi mieć dostęp do lokalnych podsieci, Gluetun obsługuje FIREWALL_OUTBOUND_SUBNETSNa przykład:
FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
Użyj rzeczywistej podsieci LAN i unikaj nakładania się jej na zakres tunelu VPN.
Przekierowanie portów przez dostawcę VPN różni się od mapowania portów Docker
Dokumentacja Gluetun rozróżnia:
- Publikowanie portów Docker: udostępnienie WebUI qBittorrent w sieci LAN.
- Przekierowanie portów przez dostawcę VPN: uzyskanie przychodzącego portu od dostawcy VPN, który obsługuje tę funkcję.
Nie włączaj VPN_PORT_FORWARDING wyłącznie po to, aby naprawić lokalny dostęp do WebUI qBittorrent. Rozwiązują one różne problemy.
Lista kontrolna Gluetun w ZimaOS
- Skonfiguruj Gluetun dla swojego dostawcy VPN zgodnie z aktualną dokumentacją dostawcy.
- Potwierdź, że dzienniki Gluetun pokazują oczekiwany wyjściowy adres IP VPN.
- Umieść docelową aplikację w przestrzeni nazw sieci Gluetun.
- Użyj
service:gluetundla tego samego stosu Compose lubcontainer:gluetundla zewnętrznego kontenera. - Usuń zduplikowane opublikowane porty z aplikacji kierowanej przez VPN.
- Opublikuj wymagane porty WebUI/porty nasłuchujące na Gluetun.
- Uruchom ponownie stos.
- Przetestuj publiczny adres IP docelowej aplikacji niezależnie od własnego dziennika Gluetun.
- Nie umieszczaj danych uwierzytelniających VPN ani prywatnych kluczy WireGuard w publicznych plikach Compose.
Najczęstsze pytania dotyczące klienta VPN ZimaOS
Czy ZimaOS może kierować przez VPN tylko qBittorrent?
Tak. Wątek społecznościowy wykorzystywał Gluetun konkretnie do współdzielenia jego stosu sieci VPN z wybranymi aplikacjami Docker zamiast tunelowania wszystkich usług ZimaOS.
Dlaczego Gluetun wyświetlał adres IP VPN, podczas gdy qBittorrent nadal wyświetlał adres IP operatora?
Ponieważ kontener VPN może działać prawidłowo, podczas gdy qBittorrent nadal jest podłączony do swojej normalnej sieci. Sprawdź rzeczywisty tryb sieci qBittorrent.
Dlaczego zmiana portów powoduje awarię WebUI qBittorrent?
Gdy qBittorrent współdzieli przestrzeń nazw sieci Gluetun, opublikuj port WebUI na Gluetun, a nie ten sam port na qBittorrent.
Czy należy użyć service:gluetun czy container:gluetun?
Użyj service:gluetun gdy obie usługi znajdują się w tym samym projekcie Compose. Użyj container:gluetun gdy zewnętrzny kontener dołącza do nazwanego kontenera Gluetun.
