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.

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.dev
Le 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: :
- Les travailleurs reçoivent la demande.
- Shadowfetch supprime tous les en-têtes sensibles (tels que l'en-tête
cf-connecting-ip
). - Connexion directe au serveur cible via un socket TCP (
https://example.com
). - Renvoie la réponse du serveur cible.
Configuration des cibles personnalisées
- Paramétrage dans le code
DEFAULT_DST_URL
toutes 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)
- Récupération par défaut :
- 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_query
et 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
- Pourquoi shadowFetch est-il meilleur pour la protection de la vie privée ?
Parce qu'il ne portera pas la variété propre à Cloudflare decf-
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. - Comment activer le débogage pour afficher les journaux ?
classificateur pour les objets munis d'une poignéeDEBUG_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. - 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
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...