FreeProxyProxy(autoproxy) — ローカルHTTPSプロキシ中継

Tool

概要

autoproxy(FreeProxyProxy)は、ローカルで動作するHTTPSプロキシ中継(relay)です。free-proxy-list.net の公開プロキシ一覧を定期的に取得し、「Google = yes」かつ「Https = yes」の条件に合うものだけを選別してプール化します。ローカルで受けたCONNECT(トンネル)要求は、そのフィルタ済みプールの中から上流プロキシを選んで中継されます。設定や依存を最小化したシンプル実装で、ローカル環境から簡易に上流プロキシ経由の通信を行いたい開発者向けのツールです。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 2
  • ウォッチャー数: 8
  • コミット数: 3
  • ファイル数: 6
  • メインの言語: JavaScript

主な特徴

  • free-proxy-list.net から自動でプロキシ一覧を取得してプール化
  • 「Google = yes」「Https = yes」でフィルタリングして上流プロキシを厳選
  • 定期的にプロキシプールを自動リフレッシュ
  • ローカルで受けたCONNECTリクエストを選択した上流プロキシへ中継

技術的なポイント

このプロジェクトはNode.jsでのネットワーク/プロキシ処理に焦点を当てています。一般的な実装フローとしては、HTTPクライアント(fetchやaxios等)で free-proxy-list.net のページを取得し、HTMLテーブルをパースして各行のカラム(IP, ポート, Google, Httpsなど)を抽出します。抽出したリストは「Google = yes」「Https = yes」で絞り込み、IP:PORTの形式で内部プールに保持します。プールは一定間隔で再取得・更新され、死んだプロキシを排除することで可用性を保ちます。

ローカルのプロキシ部分は、HTTPのCONNECTメソッドを受け付けてトンネルを確立するサーバー(http/httpsモジュールやnetモジュールを利用)として動きます。受けたCONNECT要求に対しては、プールから適切な上流プロキシを選び(ランダムまたはラウンドロビン)、その上流プロキシへ新たな接続を張ってバイトストリームを双方向にパイプします。TLS終端を行わずに単純にバイナリをリレーすることで透過的なトンネリングを実現します。

考慮すべき実装上のポイントは次の通りです。まず公開プロキシの信頼性が低い点に対処するため、接続失敗時のリトライやタイムアウト短縮、ヘルスチェックを入れて不良ノードを速やかに除外する必要があります。次に、上流プロキシが認証を要求するケースや、接続数上限、レスポンスの遅延などの制約に対するハンドリング(バックオフ、フェイルオーバー)も重要です。最後にセキュリティ面では、公開プロキシ経由で通過するデータの可視化やログポリシー、悪用のリスクを明確にし、運用時は注意喚起が必要です。

このリポジトリはシンプルさを重視しており、学習用や実験用途には適していますが、本番環境での使用は公開プロキシの性質上、十分な検討と追加の堅牢化が求められます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • README.zh-CN.md: file
  • index.js: file
  • package.json: file

…他 1 ファイル

まとめ

公開プロキシを自動取得して中継するシンプルなNode.js製ローカルHTTPSリレー。学習・実験用途に最適。

リポジトリ情報:

READMEの抜粋:

autoproxy

autoproxy is a local HTTPS proxy relay written in Node.js.

中文文档: README.zh-CN.md

It fetches public proxies from https://free-proxy-list.net/en/, keeps only entries where both Google = yes and Https = yes, and forwards incoming CONNECT requests to the filtered upstream proxy pool.

Features

  • Auto-fetch proxy list from free-proxy-list.net/en/
  • Filter by:
    • Google = yes
    • Https = yes
  • Auto-refresh proxy pool on a fixed interval
  • Local pr…