Allgemeine Einführung
Shadowfetch ist ein leichtgewichtiges Open-Source-Tool für Cloudflare Workers, das vom Entwickler tysak auf GitHub gepflegt und unter der AGPL v3-Lizenz veröffentlicht wird. Es ersetzt die standardmäßige Fetch-Funktionalität von Cloudflare Workers durch eine native Weiterleitung von TCP-Socket-Anfragen und wurde entwickelt, um Benutzern ein höheres Maß an Datenschutz zu bieten. Anstelle des eingebauten Fetch, der sensible Informationen wie Benutzer-IP, Geolocation usw. preisgeben kann, stellt Shadowfetch sicher, dass nur die notwendigen Daten während des Anfrageprozesses weitergegeben werden, indem unnötige Metadaten und Header entfernt werden. Es eignet sich für Entwickler oder Anwendungen mit hohen Datenschutzanforderungen, wie z. B. Proxy-Dienste, die Anfragen anonymisieren müssen.
Der Grund dafür, dass die Verwendung von Cloudflare Workers zur Umkehrung aller Arten von Big-Factory-APIs zu einer Sperrung führen kann, ist, dass Cloudflare Workers Ihre Privatsphäre kompromittieren kann, und diese Lösung wird hauptsächlich verwendet, um alle Arten von Big-Model-APIs sicher und kraftvoll zu machen.
Funktionsliste
- Schutz der Privatsphäre Weiterleitung von AnträgenEntfernen Sie sensible Header (wie Benutzer-IP und Geolocation), die Cloudflare standardmäßig hinzufügt.
- Native TCP-Socket-UnterstützungBypass: Umgehen Sie die Metadateninjektion des integrierten Fetch, indem Sie eine direkte TCP-Verbindung verwenden.
- Leichte KonstruktionReduziert den Ressourcenverbrauch, gewährleistet eine schnelle Reaktion und eignet sich für hochfrequente Anfragen.
- KonfigurierbarkeitDie Ziel-URLs und die Authentifizierungs-Tokens sind benutzerdefiniert, was eine flexible Anpassung an unterschiedliche Bedürfnisse ermöglicht.
- Open-Source-ZusammenarbeitBasierend auf der AGPL v3-Lizenz sind Beiträge der Gemeinschaft zum Code und Vorschläge zur Optimierung willkommen.
Hilfe verwenden
Shadowfetch ist ein Tool, das in der Cloudflare Workers-Umgebung ausgeführt wird und für dessen Installation und Verwendung einige technische Kenntnisse erforderlich sind. Nachfolgend finden Sie eine detaillierte Installations- und Betriebsanleitung, um Benutzern eine schnelle Bereitstellung und einen schnellen Einstieg zu ermöglichen.
Einbauverfahren
Shadowfetch erfordert Quellcode über GitHub und die Bereitstellung in Cloudflare Workers. Hier sind die genauen Schritte:
1. die Umwelt vorbereiten
- Vorbedingungen::
- Sie haben sich für ein Cloudflare-Konto registriert und die Workers-Funktion aktiviert.
- Installieren Sie Node.js und npm (für das Wrangler-Tool).
- Installieren Sie das Wrangler CLI-Tool für Cloudflare:
npm install -g wrangler
- Melden Sie sich bei Wrangler an:
wrangler login
2. den Shadowfetch-Quellcode erhalten
- Klonen oder laden Sie das Shadowfetch-Repository herunter:
git clone https://github.com/tysak/shadowfetch.git cd shadowfetch
- 如果项目没有提供独立的 `wrangler.toml` 文件,需手动创建:
```toml
name = "shadowfetch-worker"
type = "javascript"
account_id = "你的 Cloudflare Account ID"
workers_dev = true
3. der Konfigurationscode
- Öffnen Sie die Hauptskriptdatei im Projekt (normalerweise die
index.js
) und ändern Sie die Konfiguration nach Bedarf. Zum Beispiel:const CONFIG = { AUTH_TOKEN: "your-auth-token", // 用于验证请求的令牌 DEFAULT_DST_URL: "https://example.com", // 默认目标地址 DEBUG_MODE: false, // 调试模式开关 };
- Speichern Sie die Datei, wenn die Konfiguration abgeschlossen ist.
4. die Bereitstellung bei Cloudflare Workers
- Führen Sie den folgenden Befehl im Projektverzeichnis aus, um es bereitzustellen:
wrangler publish
- Nach erfolgreichem Einsatz gibt Cloudflare eine Workers-URL zurück (z. B.
https://shadowfetch.your-account.workers.dev
Der Dienst kann über diese URL aufgerufen werden.
5. die Validierung des Einsatzes
- ausnutzen
curl
oder Browser-Testing-Dienste:curl https://shadowfetch.your-account.workers.dev/image/https://example.com
- Wenn eine Antwort an den Zielserver zurückgegeben wird, die keine sensiblen Kopfzeilen enthält (wie z. B. die
cf-ipcountry
), was auf einen erfolgreichen Einsatz hinweist.
Wie zu verwenden
Die Kernfunktion von Shadowfetch ist das Abfangen von Anfragen durch Worker und deren Weiterleitung unter Wahrung der Privatsphäre. Hier sind die Details, wie es funktioniert:
Grundlegende Weiterleitung von Anfragen
- Trigger-MethodeShadowfetch basiert auf dem Pfadmuster (z. B.
/image/https/...
), um die Anfrage abzufangen. Zum Beispiel:curl https://shadowfetch.your-account.workers.dev/image/https://example.com
- Bearbeitungsablauf::
- Die Arbeitnehmer erhalten den Antrag.
- Shadowfetch entfernt alle sensiblen Header (wie zum Beispiel die
cf-connecting-ip
). - Direkte Verbindung zum Zielserver über TCP-Socket (
https://example.com
). - Gibt die Antwort des Zielservers zurück.
Benutzerdefinierte Ziele konfigurieren
- Einstellung im Code
DEFAULT_DST_URL
werden alle Anfragen, die kein Ziel angeben, an diese Adresse weitergeleitet. Zum Beispiel:const CONFIG = { DEFAULT_DST_URL: "https://api.example.com" };
- Umgruppierung:
wrangler publish
Zertifizierung hinzufügen
- Wenn Sie den Zugriff einschränken müssen, können Sie die Option
AUTH_TOKEN
. Client-Anfragen müssen das Token in den Kopfzeilen enthalten:curl -H "Authorization: your-auth-token" https://shadowfetch.your-account.workers.dev/image/https://example.com
- Anfragen, die nicht mit dem richtigen Token versehen sind, werden abgelehnt.
Featured Function Bedienung
Datenschutz
- Ergebnisse anzeigenVergleichen Sie die Header der Anfrage mit Shadowfetch und dem Standard-Fetch:
- Standardabruf:
cf-ipcountry: CN cf-connecting-ip: 1.2.3.4
- Shadowfetch:
(仅保留必要头信息,如 Content-Type)
- Standardabruf:
- ArbeitsweiseEs ist keine zusätzliche Konfiguration erforderlich, und sie wird nach der Bereitstellung automatisch wirksam.
Debug-Modus
- .
DEBUG_MODE
Detaillierte Protokolle anzeigen:const CONFIG = { DEBUG_MODE: true };
- Rufen Sie nach der Bereitstellung das Workers-Protokoll auf:
wrangler tail
- In den Protokollen werden Details zur Verarbeitung von Anfragen angezeigt, um die Fehlersuche zu erleichtern.
Empfehlungen für die Verwendung
- TestumgebungLokale Nutzung wird für die Erstinstallation empfohlen.
wrangler dev
Prüfung:wrangler dev
- Code aktualisieren: Zieht regelmäßig die neueste Version von GitHub:
git pull origin main wrangler publish
- Unterstützung der GemeinschaftSenden Sie Feedback auf GitHub Issues oder tragen Sie zum Code bei, wenn Sie auf Probleme stoßen.
Anwendungsbeispiel
1. HTTP-Proxy
Sie müssen lediglich die Ziel-URL in folgendem Format an das Ende der Adresse des bereitgestellten Workers anhängen:
https://你的_Cloudflare_Worker_域名/密码/https://目标网站/其他路径
Ein Beispiel:
https://bequiet.pages.dev/fonts/https://destination.example.com/dns_query
Der Besuch dieses Links leitet die Anfrage an die https://destination.example.com/dns_query
und ihre echte IP nicht mehr preisgeben!
2. der WebSocket-Proxy
Um einen WebSocket zu proxyen, ersetzen Sie einfach das Zielprotokoll durch eines, das mit wss:// beginnt.
Das Format bleibt bestehen:
wss://你的_Cloudflare_Worker_域名/密码/wss://目标网站/其他路径
Beispiel:
wss://bequiet.pages.dev/fonts/wss://destination.example.com/chatroom
Ein Klick und Sie sind auf dem Weg! wss://destination.example.com/chatroom
.
Häufig gestellte Fragen
- Warum ist shadowFetch besser für den Datenschutz?
Weil es nicht Cloudflare's eigene Sorte voncf-
Dies bedeutet, dass Ihre Anfrage in den Augen des Zielservers eine "saubere native TCP-Verbindung" ist. Dies bedeutet, dass Ihre Anfrage in den Augen des Zielservers eine "saubere native TCP-Verbindung" ist. - Wie schalte ich die Fehlersuche ein, um Protokolle anzuzeigen?
Klassifikator für Objekte mit einem GriffDEBUG_MODE
Umgebungsvariable ist gesetzt auftrue
Das war's. Im Worker-Protokoll können Sie detaillierte Debugging-Informationen zu Anfragen und Antworten sehen. - Kann ich nicht den Standard-AUTH_TOKEN für das Passwort verwenden?
Sie können sie in der Umgebungsvariablen in Ihre bevorzugte Zeichenfolge ändern, z. B. "mySecret", und dann muss der Link demselben "mySecret" folgen, damit der Proxy erfolgreich ist.