2 Punkte von GN⁺ 2025-11-29 | 1 Kommentare | Auf WhatsApp teilen
  • Imgurs Sperrung für britische Nutzer führte dazu, dass in Reddit, Foren, Dokumenten und an vielen anderen Stellen Bildlinks als „unavailable“ angezeigt wurden
  • Statt eines persönlichen VPNs wurde eine automatische Umgehungsstruktur auf Netzwerkebene aufgebaut, damit Imgur auf allen Geräten zugänglich ist
  • Es wurde eine Architektur mit Pi-hole, Traefik, Gluetun, Nginx und NixOS entwickelt, die DNS-Sperren umgeht und den Traffic über ein VPN leitet
  • Mit TLS-Pass-Through und gemeinsam genutztem Docker-Netzwerk wird verschlüsselter Traffic unverändert durchgereicht und die Verlangsamung auf ein Minimum reduziert
  • Ergebnis: Auf allen Geräten ist der Zugriff auf Imgur-Bildern ohne separate Konfiguration möglich – Umsetzung einer transparente Netzwerk-Bypass-Struktur ohne Geschwindigkeitsverlust

Imgur-Blockierung und Unannehmlichkeiten

  • Nachdem Imgur den Zugriff für Nutzer aus Großbritannien blockierte, trat das Problem auf, dass Bildlinks auf verschiedenen Webseiten wie Reddit, Foren und Dokumenten nicht angezeigt wurden
    • Die Vorschau-Bilder der Minecraft-Shader waren alle verschwunden, sodass nicht erkennbar war, welcher Shader gemeint war
    • Auch in älteren Beiträgen oder README-Dateien blieben Imgur-Links bestehen, wodurch der Zugriff weiterhin nicht möglich war

Alternative zum VPN auf Geräteebene

  • Die übliche Lösung ist ein VPN, doch bei einem 2,5-Gbps-Internetanschluss führt das Umleiten des gesamten Traffics durch ein VPN zu Geschwindigkeitsverlusten
  • Für jedes Gerät muss ein VPN installiert und verbunden werden, was ein Aufwand im Management verursacht
  • Ziel war eine netzwerkweite Lösung ohne Client-Konfiguration, die automatisch auf allen Geräten funktioniert

Netzwerkebene Architektur

  • In der bestehenden Homelab-Umgebung wurden bereits Traefik (Reverse Proxy), Pi-hole (DNS) und NixOS (deklarative Konfiguration) genutzt
  • Auf DNS-Ebene werden i.imgur.com-Anfragen abgefangen und an den VPN-Container (Gluetun) weitergeleitet
    • Pi-hole gibt die IP von Traefik zurück
    • Traefik prüft den SNI-Hostnamen und leitet zu Gluetun weiter
    • Gluetun leitet die Anfrage über VPN weiter
    • Nginx innerhalb von Gluetun proxy-t zum echten Imgur-Server
    • Das Bild wird anschließend über den Tunnel zurückgegeben

Nginx- und Gluetun-Setup

  • Da Gluetun nur die VPN-Verbindung bereitstellt, wird ein Nginx benötigt, der als Proxy im VPN-Netzwerk agiert
  • Nginx ist im TCP-Stream-Modus konfiguriert, liest den SNI-Header und leitet den Traffic an i.imgur.com:443 weiter
    • Der TLS-Handshake wird End-to-End durchgeführt, daher sieht Nginx keine entschlüsselten Daten
  • In Docker Compose laufen zwei Container (Gluetun, Nginx)
    • Mit network_mode: "service:gluetun" teilt Nginx den Netzwerk-Stack mit Gluetun
    • Alle Nginx-Traffic-Pakete passieren automatisch den VPN-Tunnel

Traefik- und NixOS-Integration

  • Traefik verwendet TCP-Routing und TLS-Pass-Through, um i.imgur.com-Anfragen an Gluetun zu übergeben
    • TLS wird nicht terminiert; lediglich der SNI-Header wird geprüft
  • In NixOS wird der Docker-Compose-Stack als systemd-Dienst ausgeführt
    • Mit Agenix werden VPN-Zugangsdaten verschlüsselt gespeichert
    • Das gesamte dotfiles-Repository bleibt öffentlich, während vertrauliche Daten geschützt bleiben

Ergebnis und Performance

  • Alle Geräte im Netzwerk (Smartphone, Laptop, Gästegerät inklusive) können ohne zusätzliche Konfiguration auf Imgur-Bilder zugreifen
  • Pi-hole übernimmt DNS-Abfang, Traefik das Routing, Gluetun das VPN-Tunneling
  • Die Bildladezeit ist nahezu unverändert, denn nur der Imgur-Traffic läuft über VPN, sodass die durchschnittliche Geschwindigkeit des übrigen Traffics erhalten bleibt
  • Die Wartung ist unkompliziert, und es wurde eine automatisierte Struktur für die Entsperrung geografischer Sperren im Homelab umgesetzt
  • Imgur-basierte Inhalte wie Minecraft-Shader sind wieder normal einsehbar

1 Kommentare

 
GN⁺ 2025-11-29
Hacker-News-Kommentar
  • In meinem Netzwerk ist nur ein Router so konfiguriert, dass er VPN kennt.
    Ich nutze eine günstige lüfterlose Box mit Linux und mehreren Ports und habe mit systemd-networkd einmalig ein WireGuard-Interface eingerichtet.
    Dadurch kann ich nur bestimmten Traffic über das VPN routen oder auch eine eigene VPN-only-SSID/VLAN betreiben.
    Allerdings kann domainbasiertes Routing knifflig sein, daher überlege ich, bei Bedarf einen Proxy mit lokalem DNS-Override auf dem Router zu ergänzen.
    • Das lässt sich auch einfach lösen, ohne einen separaten Browser zu starten: Mit der FoxyProxy-Erweiterung kann man Proxys nach URL-Mustern festlegen.
    • Ich habe auf einem RPi einen zentralen VPN-Splitter auf Basis von x-ray/singbox eingerichtet und Tailscale daran angebunden, sodass ich von überall darauf zugreifen kann.
      Regelbasiertes geografisches Split-Routing wird ebenfalls unterstützt, was sehr praktisch ist.
    • Mich würde der Produktname dieser lüfterlosen Linux-Box interessieren.
  • Beim Titel „Geo-Unblocked“ dachte ich zuerst, es gehe darum, selbst IP-Blöcke außerhalb Großbritanniens zu betreiben, aber tatsächlich ging es nur darum, einen Teil des Traffics über ein VPN zu leiten.
    • Wenn man selbst als ISP auftritt, kann man praktisch überall sein, wo man möchte.
      Einen passenden Artikel dazu gibt es in diesem Blog.
    • Allerdings scheint das Ändern der WAN-Adresse ungefähr so zu sein, als würde man das IP-Schema innerhalb des Netzwerks ändern, daher glaube ich nicht, dass das in der Praxis funktionieren würde.
  • Man fragt sich zwar: „Muss man wirklich so weit gehen, nur um gelegentlich Imgur-Bilder anzusehen?“, aber bei meinen Recherchen in letzter Zeit habe ich gemerkt, wie stark die Abhängigkeit von Imgur tatsächlich ist.
    Es war lästig, dass Screenshots nicht angezeigt wurden, und dieser Beitrag ist für mich wohl der letzte Anstoß.
    • Im Moment wirkt das vielleicht übertrieben, aber Regierungen versuchen zunehmend, den Zugang zu immer mehr Inhalten einzuschränken, daher halte ich es für klug, sich im Voraus vorzubereiten.
    • Imgur wird an überraschend vielen Stellen verwendet. Auf der Website von Core Devices (dem Nachfolgeteam von Pebble) liegen zum Beispiel ebenfalls Bilder auf Imgur.
      Solche Sperren lassen sich zwar leicht umgehen, aber wenn Imgur verschwinden würde, wären viele Websites kaputt.
    • Die Zensur wird nicht bei Imgur aufhören.
      Selbst wenn Menschen Zensur umgehen, ist es wichtig, dass ausländische Server sich autoritären Regulierungen nicht beugen müssen, solange der Verlust an Traffic nicht allzu groß ist.
      Auch die EU scheint in eine ähnliche Richtung zu gehen, daher sollten Werkzeuge, mit denen sich Zensur verweigern lässt, weit verbreitet sein.
    • Für mich war die Umgehung ebenfalls schwieriger als erwartet, aber mit der kostenlosen Version von Veepn auf Singapur eingestellt funktionierte es langsam, aber einigermaßen.
  • So ein Ansatz könnte sich auch nutzen lassen, um die „gleicher Haushalt“-Beschränkungen von Netflix oder Spotify zu umgehen.
    Wenn man das zusammen mit PiHole auf einem Raspberry Pi oder Mini-PC einrichtet, könnte man den Traffic des Haushalts der Familie durch die eigene IP tunneln.
  • Auch in UniFi lässt sich das mit Policy-Based Routing (PBR) leicht umsetzen.
    Man fügt in der mobilen App eine WireGuard-Konfigurationsdatei hinzu und legt dann in der Policy-Engine fest, dass nur bestimmte Domains über das VPN-Interface geroutet werden.
    • Der Nachteil ist, dass IPv6 das VPN umgeht, wenn es aktiviert ist.
      Ich habe das vorläufig mit langen Firewall-Regeln gelöst, die IPv6-Bereiche blockieren, wurde aber auf Cloudflare-basierten Websites ausgesperrt.
      Hoffentlich unterstützt UniFi bald IPv6-WireGuard.
  • Die UK-Sperre von Imgur bleibt per Cookie bestehen, daher reicht es nicht, das VPN nur kurz einzuschalten.
    Bei Reddit ist es noch schlimmer: Dort kann man nicht einmal die Profile von Nutzern ansehen, die irgendwann einmal NSFW-Beiträge gepostet haben.
  • Ich habe mich gefragt, ob es eine Möglichkeit gibt, nur bestimmte Domains über ein VPN zu schicken und den Rest als normalen Traffic zu belassen.
    So könnte alles automatisch laufen, ohne das VPN ständig ein- und ausschalten zu müssen.
    Das wäre zum Beispiel nützlich bei Social-Media-Plattformen mit Altersverifikation, Apps mit Ländersperren (wie Spotify) oder bei zensierten Nachrichtenseiten.
    • Das nennt man domainbasiertes Split-Tunneling.
      In der Regel gilt das nur für HTTP/S-Anfragen, aber Anbieter wie ZScaler erweitern das auch auf andere Protokolle.
      Bei Tailscale übernimmt die Funktion App Connector diese Rolle.
    • Genau genommen wurde so eine Konfiguration in dem Beitrag bereits umgesetzt.
  • Ich habe etwas Ähnliches mit der PBR-Funktion eines OpenWRT-Routers eingerichtet.
    In etwa 15 Minuten kann man konfigurieren, dass nur bestimmte Domains über das VPN laufen, und das funktioniert sehr gut.
  • Ich löse solche Probleme meist mit einer Proxy-PAC-Datei.
    In Umgebungen wie Flugzeug-WLAN, in denen VPN blockiert ist, SSH aber erlaubt bleibt, habe ich dynamisches Forwarding mit einer PAC-Datei kombiniert, sodass Bordunterhaltung oder Tracking-Seiten direkt verbunden werden.
    Das funktioniert ziemlich gut.