searx: Dem Blocking von Startpage und Co. entgehen

Anfang November habe ich viel Zeit mit der Optimierung und Verbesserung der searx-Instanz www.kuketz-suche.de verbracht. Dabei stieß ich regelmäßig auf ein Problem, das die Benutzung der searx-Instanz praktisch unmöglich macht. Zur Erinnerung:

[…] Mit steigender Anzahl von Benutzern lieferten einige Suchmaschinen allerdings keine Ergebnisse an die searx-Instanz zurück. Auch hier war die Ursache, dass zu viele Suchanfragen, in einem kurzen Zeitfenster, an die Suchmaschine(n) gestellt wurden. Im Gegensatz zu Google blendet Bing und Co. keine CAPTCHAs ein, sondern liefert einfach keine Ergebnisse mehr zurück bzw. sperrt die anfragende IP-Adresse der searx-Instanz temporär. Daher habe ich die searx-Instanz mit zwei weiteren IPv4-Adressen ausgestattet, die Suchanfragen an die Suchmaschinen weiterreichen.

Allerdings hat sich gezeigt, dass die zusätzlichen IP-Adressen nicht die erhoffte Lösung ist. Auch die zusätzlichen IP-Adressen kamen letztendlich auf eine Art »Blacklist« und Suchmaschinen wie Startpage lieferten keine Ergebnisse mehr. Zeitweise bin ich daher auf das Tor-Netzwerk ausgewichen bzw. alle Suchanfragen wurden über das Tor-Netzwerk gestellt – die anfragende IP-Adresse bei den Suchmaschinen hat sich dauerhaft verändert bzw. war die eines Tor-Exit-Nodes. Allerdings war die Geschwindigkeit deutlich langsamer.

Seit dem 11. November habe ich daher eine andere Lösung umgesetzt, die nach einer zweiwöchigen Testphase erfolgversprechend zu sein scheint. Ich reiße das Setup kurz an, da ich einige Nachfragen zur Umsetzung erhalte.

Das Setup ist aktuell wie folgt:

  • Es gibt eine searx-Instanz, die über die Domain www.kuketz-suche.de erreichbar ist und alle Suchanfragen entgegennimmt.
  • Die Instanz sendet die Anfrage allerdings nicht direkt an die Suchmaschinen, sondern an einen von aktuell sieben SOCKS-5-Proxys – für jeden Wochentag einen anderen.
  • Der Ablauf ist hierbei wie folgt:
    • Die Suchanfrage geht bei der searx-Instanz ein.
    • Anschließend wird die Anfrage über einen WireGuard-VPN-Tunnel zu einem der sieben Server gesendet, auf denen jeweils ein SOCKS-5-Proxy lauscht.
    • Der SOCKS-5-Proxy stellt anschließend die Suchanfrage an die Suchmaschinen und sendet die Ergebnisse über den WireGuard-VPN-Tunnel an die searx-Instanz zurück.
    • Die searx-Instanz wiederum liefert die Ergebnisse an den Suchenden aus.
  • Innerhalb der searx-Konfiguration ist also ein SOCKS-5-Proxy hinterlegt, der die Suchanfragen bearbeitet.
  • Jede Nacht um 4 Uhr wird die bestehende WireGuard-VPN-Verbindung zu einem der sieben Server terminiert und eine neue VPN-Verbindung zum nächsten Server aufgebaut. Die searx-Konfiguration bleibt unberührt, da der SOCKS-5-Proxy eine private IP-Adresse im WireGuard-Netzwerk hat, die sich nicht ändert. Für die searx-Instanz ist der Wechsel der IP-Adresse transparent bzw. sie bekommt davon nichts mit.
  • Aus Sicht der Suchmaschinen stellt also an jedem Tag eine andere IP-Adresse (via SOCKS-5-Proxy) die Anfrage(n).
  • Sollte ein Server aufgrund von zu vieler Anfragen blockiert sein, lässt er sich einfach austauschen – die Konfiguration lässt sich Klonen bzw. einfach auf eine neuen Server übertragen.

Insgesamt ist das natürlich ein erheblicher Aufwand – aber es scheint zu funktionieren. Ein Langzeittest über mehrere Monate wird zeigen, ob die Lösung Zukunft hat.

Hilf mit die Spendenziele zu erreichen! Mitmachen ➡