Shadowfetch : Proxy anonyme des travailleurs de Cloudflare API de grand modèle

Introduction générale

Shadowfetch est un outil open source léger pour Cloudflare Workers, maintenu par le développeur tysak sur GitHub et publié sous la licence AGPL v3. Il remplace la fonctionnalité de récupération par défaut de Cloudflare Workers par un transfert de requête de socket TCP natif, et vise à fournir aux utilisateurs un niveau plus élevé de protection de la vie privée. Au lieu du fetch intégré, qui peut laisser échapper des informations sensibles telles que l'adresse IP de l'utilisateur, la géolocalisation, etc., Shadowfetch garantit que seules les données nécessaires sont transmises au cours du processus de requête en supprimant les métadonnées et les en-têtes superflus. Il convient aux développeurs ou aux applications ayant des exigences élevées en matière de confidentialité, tels que les services proxy qui doivent anonymiser les requêtes.

La raison pour laquelle l'utilisation de Cloudflare Workers pour inverser toutes sortes d'API de grandes usines peut conduire à un blocage est que Cloudflare Workers peut compromettre votre vie privée, et que cette solution est principalement utilisée pour sécuriser et renforcer toutes sortes d'API de grands modèles.

Shadowfetch:Cloudflare Workers 匿名代理大模型API

 

Liste des fonctions

  • Transmission des demandes de protection de la vie privéeSupprimer les en-têtes sensibles (tels que l'IP de l'utilisateur et la géolocalisation) que Cloudflare ajoute par défaut.
  • Prise en charge native des sockets TCP:通过直接使用 TCP 连接绕过内置 fetch 的元数据注入。
  • Conception légèreIl permet de réduire la consommation de ressources, d'assurer une réponse rapide et de répondre aux demandes les plus fréquentes.
  • configurabilitéPrise en charge des URL cibles et des jetons d'authentification définis par l'utilisateur pour une adaptation souple aux différents besoins.
  • Collaboration Open SourceLe projet est basé sur la licence AGPL v3. Les contributions de la communauté au code et les suggestions d'optimisation sont les bienvenues.

 

Utiliser l'aide

Shadowfetch est un outil qui fonctionne dans l'environnement Cloudflare Workers et dont l'installation et l'utilisation nécessitent quelques connaissances techniques. Vous trouverez ci-dessous un guide d'installation et d'utilisation détaillé pour aider les utilisateurs à déployer rapidement l'outil et à commencer à l'utiliser.

Processus d'installation

Shadowfetch nécessite un code source via GitHub et un déploiement dans les Cloudflare Workers. Voici les étapes exactes :

1. préparer l'environnement

  • conditions préalables: :
    • Vous avez ouvert un compte Cloudflare et activé la fonction Travailleurs.
    • Installer Node.js et npm (pour l'outil Wrangler).
    • Installez l'outil Wrangler CLI pour Cloudflare :
      npm install -g wrangler
      
    • Se connecter à Wrangler :
      wrangler login
      

2. obtenir le code source de Shadowfetch

  • Clonez ou téléchargez le dépôt Shadowfetch :
    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. code de configuration

  • Ouvrez le fichier de script principal du projet (généralement le fichier index.js), en modifiant la configuration si nécessaire. Par exemple :
    const CONFIG = {
    AUTH_TOKEN: "your-auth-token",        // 用于验证请求的令牌
    DEFAULT_DST_URL: "https://example.com", // 默认目标地址
    DEBUG_MODE: false,                    // 调试模式开关
    };
    
  • Enregistrez le fichier lorsque la configuration est terminée.

4) Déploiement sur Cloudflare Workers

  • Exécutez la commande suivante dans le répertoire du projet à déployer :
    wrangler publish
    
  • Après un déploiement réussi, Cloudflare renvoie une URL de travailleurs (par ex. https://shadowfetch.your-account.workers.devLe service est accessible via cette URL.

5. validation du déploiement

  • utiliser curl ou des services de test de navigateur :
    curl https://shadowfetch.your-account.workers.dev/image/https://example.com
    
  • Si une réponse est renvoyée au serveur cible qui ne contient pas d'en-têtes sensibles (tels que l'en-tête cf-ipcountry), ce qui indique un déploiement réussi.

Comment l'utiliser

La fonctionnalité principale de Shadowfetch est d'intercepter les demandes des travailleurs et de les transmettre en préservant la confidentialité. Voici les détails de son fonctionnement :

Transmission des demandes de base

  • méthode de déclenchementShadowfetch : Shadowfetch est basé sur le modèle de chemin (par ex. /image/https/...) pour intercepter la demande. Par exemple :
    curl https://shadowfetch.your-account.workers.dev/image/https://example.com
    
  • flux de traitement: :
    1. Les travailleurs reçoivent la demande.
    2. Shadowfetch supprime tous les en-têtes sensibles (tels que l'en-tête cf-connecting-ip).
    3. Connexion directe au serveur cible via un socket TCP (https://example.com).
    4. Renvoie la réponse du serveur cible.

Configuration des cibles personnalisées

  • Paramétrage dans le code DEFAULT_DST_URLtoutes les demandes qui ne précisent pas de destination sont transmises à cette adresse. Par exemple :
    const CONFIG = { DEFAULT_DST_URL: "https://api.example.com" };
    
  • Redéploiement :
    wrangler publish
    

Ajouter une certification

  • Si vous devez restreindre l'accès, vous pouvez définir le paramètre AUTH_TOKEN. Les requêtes des clients doivent contenir le jeton dans les en-têtes :
    curl -H "Authorization: your-auth-token" https://shadowfetch.your-account.workers.dev/image/https://example.com
    
  • Les demandes qui ne sont pas accompagnées du bon jeton seront rejetées.

Fonction en vedette Fonctionnement

Vie privée

  • Voir les résultatsLa recherche de l'en-tête de la requête : Comparez les en-têtes de la requête en utilisant Shadowfetch et la recherche par défaut :
    • Récupération par défaut :
      cf-ipcountry: CN
      cf-connecting-ip: 1.2.3.4
      
    • Shadowfetch :
      (仅保留必要头信息,如 Content-Type)
      
  • mode opératoireIl n'est pas nécessaire de procéder à une configuration supplémentaire et il prend effet automatiquement après le déploiement.

mode débogage

  • commencer à utiliser DEBUG_MODE Afficher les journaux détaillés :
    const CONFIG = { DEBUG_MODE: true };
    
  • Après le déploiement, accédez au journal des travailleurs :
    wrangler tail
    
  • Les journaux indiquent les détails du traitement des demandes pour faciliter le dépannage.

Recommandations d'utilisation

  • environnement de testL'utilisation locale est recommandée pour le déploiement initial. wrangler dev Test :
    wrangler dev
    
  • Code de mise à jour: Extrait périodiquement la dernière version de GitHub :
    git pull origin main
    wrangler publish
    
  • Soutien communautaireLes utilisateurs peuvent également contribuer à l'amélioration du code si vous rencontrez des problèmes.

 

exemple d'utilisation

1. proxy HTTP

Il vous suffit d'ajouter l'URL de destination à la fin de votre adresse de travailleur déployé dans le format suivant :

https://你的_Cloudflare_Worker_域名/密码/https://目标网站/其他路径

Un exemple :

https://bequiet.pages.dev/fonts/https://destination.example.com/dns_query

En visitant ce lien, la demande est transmise au https://destination.example.com/dns_queryet n'exposent plus leur véritable IP !

2. proxy WebSocket

Pour créer un proxy WebSocket, il suffit de remplacer le protocole cible par un protocole commençant par wss://.
Le format reste le même :

wss://你的_Cloudflare_Worker_域名/密码/wss://目标网站/其他路径

Exemple :

wss://bequiet.pages.dev/fonts/wss://destination.example.com/chatroom

Un clic et c'est parti ! wss://destination.example.com/chatroom.

 

Questions fréquemment posées

  1. Pourquoi shadowFetch est-il meilleur pour la protection de la vie privée ?
    Parce qu'il ne portera pas la variété propre à Cloudflare de cf- Cela signifie que votre demande est une "connexion TCP native propre" aux yeux du serveur cible. Cela signifie que votre demande est une "connexion TCP native propre" aux yeux du serveur cible.
  2. Comment activer le débogage pour afficher les journaux ?
    classificateur pour les objets munis d'une poignée DEBUG_MODE La variable d'environnement est fixée à true Le tour est joué. Vous pourrez voir des informations de débogage détaillées sur les requêtes et les réponses dans le journal du travailleur.
  3. Puis-je ne pas utiliser l'AUTH_TOKEN par défaut pour le mot de passe ?
    Vous pouvez le remplacer par votre chaîne préférée dans la variable d'environnement, par exemple "monSecret", et le lien devra alors suivre le même "monSecret" pour que le proxy réussisse.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...