はじめに
ShadowfetchはCloudflare Workersのための軽量なオープンソースツールで、開発者のtysakによってGitHubで管理され、AGPL v3ライセンスの下でリリースされています。これはCloudflare Workersのデフォルトのフェッチ機能をネイティブのTCPソケットリクエスト転送に置き換えるもので、より高度なプライバシー保護をユーザーに提供することを目的としています。ユーザーIP、ジオロケーションなどの機密情報を漏らす可能性のあるビルトインフェッチの代わりに、Shadowfetchは不要なメタデータやヘッダーを削除することで、リクエストプロセス中に必要なデータのみが渡されるようにします。リクエストを匿名化する必要があるプロキシ・サービスなど、高いプライバシー要件がある開発者やアプリケーションに適しています。
Cloudflare Workersを使用してあらゆる種類のビッグファクトリーAPIを反転させることがブロッキングにつながる可能性がある理由は、Cloudflare Workersがあなたのプライバシーを損なう可能性があるためであり、このソリューションは主にあらゆる種類のビッグモデルAPIを安全かつ強力に使用するために使用されます。
機能一覧
- 個人情報保護リクエスト転送Cloudflareがデフォルトで追加するセンシティブなヘッダー(ユーザーIPやジオロケーションなど)を削除します。
- ネイティブTCPソケットのサポート直接TCP接続を使用することで、内蔵フェッチのメタデータ・インジェクションをバイパスする。
- 軽量設計リソースの消費を抑え、高速レスポンスを実現し、高頻度のリクエストシナリオに適しています。
- 構成可能性ユーザー定義のターゲットURLと認証トークンをサポートし、さまざまなニーズに柔軟に対応。
- オープンソース・コラボレーションAGPL v3ライセンスに基づき、コミュニティによるコードの提供や最適化の提案を歓迎します。
ヘルプの使用
ShadowfetchはCloudflare Workers環境で動作するツールであり、インストールと使用にはある程度の技術的背景が必要です。以下は、ユーザが迅速に導入し、使い始めるための詳細なインストールおよび操作ガイドです。
設置プロセス
ShadowfetchはGitHub経由のソースコードとCloudflare Workersへのデプロイが必要です。正確な手順は以下の通りです:
1.環境を整える
- 前提条件::
- Cloudflareアカウントに登録し、Workers機能を有効にしました。
- Node.jsとnpm(Wranglerツール用)をインストールする。
- Cloudflare用のWrangler CLIツールをインストールします:
npm install -g wrangler
- Wranglerにログイン:
ラングラーログイン
2.シャドウフェッチのソースコードを入手する
- Shadowfetchリポジトリのクローンまたはダウンロード:
git clone https://github.com/tysak/shadowfetch.git cd シャドウフェッチ
- プロジェクトに ``wrangler.toml`` ファイルが用意されていない場合は、手動で作成する必要があります:
toml
name = "shadowfetch-worker"
type = "javascript"
account_id = "あなたのクラウドフレアアカウントID"
workers_dev = true
3.構成コード
- プロジェクトのメイン・スクリプト・ファイル(通常は
インデックス.js
)、必要に応じて設定を変更する。例えばconst CONFIG = { AUTH_TOKEN: "your-auth-token", // 認証リクエストに使用するトークン DEFAULT_DST_URL: "https://example.com", // デフォルトの宛先アドレス DEBUG_MODE: false, // デバッグモードの切り替え };
- 設定が完了したらファイルを保存する。
4.Cloudflareワーカーへのデプロイメント
- デプロイするプロジェクト・ディレクトリで以下のコマンドを実行する:
ラングラー出版
- デプロイに成功すると、CloudflareはWorkers URLを返します。
https://shadowfetch.your-account.workers.dev
このサービスにはこのURLからアクセスできる。
5.配備の検証
- 利用する
カール
またはブラウザのテストサービス:curl https://shadowfetch.your-account.workers.dev/image/https://example.com
- レスポンスがターゲットサーバーに返され、その中にセンシティブヘッダー(例えば
CF-IPカントリー
)、配備が成功したことを示す。
使用方法
Shadowfetchの中核機能は、Workersを介したリクエストを傍受し、プライバシーを保護する方法で転送することです。以下はその仕組みの詳細です:
基本的なリクエスト転送
- トリガメソッドシャドーフェッチはパスパターンに基づいている。
/image/https/...
) を使ってリクエストをインターセプトする。例えばcurl https://shadowfetch.your-account.workers.dev/image/https://example.com
- 処理の流れ::
- 労働者はリクエストを受け取る。
- シャドウフェッチは、すべての機密ヘッダー(例えば
CFコネクティングIP
). - TCPソケット経由でターゲットサーバーに直接接続(
https://example.com
). - ターゲットサーバーからの応答を返します。
カスタムターゲットの設定
- コードの設定
デフォルト_dst_url
宛先を指定しないリクエストはすべてこのアドレスに転送される。例えばconst CONFIG = { DEFAULT_DST_URL: "https://api.example.com" };
- 再展開:
ラングラー出版
認証の追加
- アクセスを制限する必要がある場合は
AUTH_TOKEN
.クライアントのリクエストは、ヘッダーにトークンを含める必要がある:curl -H "Authorization: your-auth-token" https://shadowfetch.your-account.workers.dev/image/https://example.com
- 正しいトークンを持たないリクエストは拒否される。
注目の機能操作
プライバシー
- 結果を見るShadowfetch とデフォルトの fetch を使ってリクエストヘッダを比較します:
- デフォルトのフェッチ:
cf-ipcountry: CN cf-connecting-ip: 1.2.3.4
- シャドウフェッチ
(Content-Typeのような必須ヘッダのみが保持される)。
- デフォルトのフェッチ:
- 操作方法追加設定は不要で、配備後に自動的に有効になります。
デバッグモード
- 使い始める
DEBUG_MODE
詳細なログを見るconst CONFIG = { DEBUG_MODE: true };
- 配備後、Workersログにアクセスする:
ラングラーテール
- ログにはリクエスト処理の詳細が表示され、問題のトラブルシューティングが容易になります。
使用上の推奨事項
- テスト環境初期展開にはローカルでの使用を推奨
ラングラー開発者
テスト:ラングラー開発者
- 更新コードGitHubから定期的に最新バージョンを取得:
git pull origin main ラングラーパブリッシュ
- 地域支援GitHubのIssuesにフィードバックを投稿したり、問題に遭遇したらコードに貢献してください。
使用例
1.HTTPプロキシ
デプロイされたワーカーのアドレスの末尾に、以下の形式で宛先URLを追加するだけです:
https://你的_Cloudflare_Worker_域名/密码/https://目标网站/其他路径
一例を挙げよう:
https://bequiet.pages.dev/fonts/https://destination.example.com/dns_query
そのリンクを訪れると、リクエストは https://destination.example.com/dns_query
そして、もはや本当のIPを公開することはない!
2.WebSocketプロキシ
WebSocketをプロキシするには、対象のプロトコルをwss://で始まるものに置き換えるだけです。
形式は変わらない:
wss://your_Cloudflare_Worker_domain/password/wss://target site/その他のパス
例
wss://bequiet.pages.dev/fonts/wss://destination.example.com/chatroom
ワンクリックで wss://destination.example.com/chatroom
.
よくある質問
- なぜシャドーフェッチがプライバシーの面で優れているのか?
Cloudflare独自のさまざまなcf
これは、ターゲットサーバーから見て、あなたのリクエストが「クリーンなネイティ ブTCP接続」であることを意味する。これは、あなたのリクエストがターゲットサーバーから見て「きれいなネイティブTCP接続」であることを意味する。 - デバッグをオンにしてログを見るには?
ハンドルを持つオブジェクトの分類器DEBUG_MODE
環境変数が真の
以上です。ワーカーログにリクエストとレスポンスの詳細なデバッグ情報が表示されます。 - パスワードにデフォルトのAUTH_TOKENを使用することはできませんか?
環境変数で "mySecret "のように好きな文字列に変更すれば、プロキシが成功するためには、リンクは同じ "mySecret "に従わなければならない。