最新のオープンソースプロキシサーバー:実践ガイド
新しくオープンソース化されたプロキシサーバーの概要
プロキシサーバーは、今日のインターネットにおける匿名性、負荷分散、そしてコンテンツフィルタリングの基盤となっています。近年、強力なプロキシサーバーがオープンソース化され、管理者、開発者、そして愛好家にかつてない柔軟性を提供しています。このガイドでは、注目すべきプロジェクト、その主要機能、そして効果的な活用方法を分析します。
主要なオープンソースプロキシサーバーの比較
プロキシサーバー | 言語 | HTTP/HTTPS サポート | SOCKS サポート | 認証 | キャッシング | 注目すべき機能 | GitHubリンク |
---|---|---|---|---|---|---|---|
プロキシローラー | パイソン | はい | はい | はい | いいえ | API、無料のローテーションプロキシ | https://github.com/proxyroller/proxyroller |
イカ | C++ | はい | いいえ | はい | はい | 高度なキャッシュ、ACL | http://www.squid-cache.org/ |
3プロキシ | C | はい | はい | はい | いいえ | 軽量、IPv6 | https://github.com/z3APA3A/3proxy |
タイニープロキシ | C | はい | いいえ | はい | いいえ | 軽量、最小限の設定 | https://github.com/tinyproxy/tinyproxy |
ゴープロキシ | 行く | はい | はい | はい | いいえ | プラグ可能、クラウドネイティブ | https://github.com/snail007/goproxy |
ミットプロキシ | パイソン | はい | いいえ | はい | いいえ | HTTPトラフィックを傍受、変更する | https://github.com/mitmproxy/mitmproxy |
COW(牛プロキシ) | 行く | はい | はい | いいえ | いいえ | Shadowsocks、GFWの回避 | https://github.com/cyfdecyf/cow |
ProxyRoller: 無料のオープンソースのローテーションプロキシサーバー
コア機能
- 無料プロキシリスト: 何千ものプロキシを集約して検証します。
- API アクセス: プロキシを取得するためのシンプルな RESTful API。
- ローテーションプロキシ: スクレイピングと匿名性のための自動ローテーション。
- SOCKS および HTTP/HTTPS プロキシ: 両方のプロトコルをサポートします。
- Docker サポート: コンテナによる迅速な展開。
インストールと使用方法
Docker デプロイメント
docker run -d -p 8000:8000 proxyroller/proxyroller
API経由でプロキシを取得する
次のコマンドで新しいプロキシを取得します。
curl http://localhost:8000/api/v1/proxies?protocol=http
Pythonリクエストとの統合
import requests
proxy = requests.get('http://localhost:8000/api/v1/proxies?protocol=http').json()['proxy']
proxies = {"http": proxy, "https": proxy}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
ユースケース: Webスクレイピング
ProxyRollerは、大規模なスクレイピングや、IPアドレス制限を回避するためにプロキシを自動的にローテーションするのに最適です。 スクレイピー:
import requests
def get_proxy():
r = requests.get('http://localhost:8000/api/v1/proxies?protocol=http')
return r.json()['proxy']
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'myproject.middlewares.RandomProxy': 100,
}
class RandomProxy:
def process_request(self, request, spider):
proxy = get_proxy()
request.meta['proxy'] = proxy
リソース
Squid: 高度なキャッシュとアクセス制御
コア機能
- 帯域幅を節約するための HTTP/HTTPS キャッシュ。
- アクセス制御のためのきめ細かな ACL。
- 認証 (基本、ダイジェスト、NTLM)。
- HTTPS 検査のための SSL バンピング。
Squid のインストール例 (Ubuntu)
sudo apt update
sudo apt install squid
基本設定
編集 /etc/squid/squid.conf
:
http_port 3128
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
Squidを再起動します。
sudo systemctl restart squid
リソース
3proxy: 軽量、オールインワン
特徴
- HTTP、HTTPS、SOCKS、FTP をサポートします。
- 認証とアクセス制御。
- IPv6 サポート。
- 最小限のリソース使用量。
インストール(Linux)
sudo apt-get install 3proxy
サンプル設定(3proxy.cfg
)
auth strong
users admin:CL:password
proxy -p3128
socks -p1080
flush
3proxyを起動します:
3proxy /etc/3proxy/3proxy.cfg
リソース
TinyProxy: 軽量 HTTP プロキシ
特徴
- 最小限、高速、メモリフットプリントが低い。
- 組み込みデバイスやシンプルなユースケースに適しています。
インストール(Debian/Ubuntu)
sudo apt-get install tinyproxy
基本設定
編集 /etc/tinyproxy/tinyproxy.conf
:
Port 8888
Allow 192.168.1.0/24
TinyProxyを再起動します。
sudo systemctl restart tinyproxy
リソース
GoProxy: スケーラブルでプラグ可能なプロキシ
特徴
- Go で書かれており、高性能です。
- HTTP、HTTPS、SOCKS5 プロキシ。
- プラグインのアーキテクチャ。
- クロスプラットフォーム。
インストール
wget https://github.com/snail007/goproxy/releases/download/v10.7/proxy-linux-amd64.tar.gz
tar -zxvf proxy-linux-amd64.tar.gz
cd proxy
./proxy http -t tcp -p 8080
リソース
Mitmproxy: HTTP/S トラフィックを傍受して検査する
特徴
- リアルタイムの傍受と変更。
- フローを表示/編集するための Web UI。
- Python を使用したスクリプト作成。
インストール(pip)
pip install mitmproxy
インタラクティブプロキシを開始
mitmproxy
リソース
オープンソースプロキシを導入するための実践的なヒント
- 安全: 常に認証を有効にし、許可される IP を制限します。
- ログ記録: 不正使用や故障がないかログを監視します。
- パフォーマンス: 高負荷のシナリオでは、Go または C ベースのプロキシを優先します。
- オートメーション: プロキシのライフサイクルを管理するには、Docker または systemd を使用します。
- プロキシソース: てこの作用 プロキシローラー API 経由で最新の検証済み無料プロキシを入手します。
実用的なワークフロー: ローテーションプロキシプールの構築
1. ProxyRollerをデプロイする:
ローカル プロキシ API をホストするには、Docker を使用するか、ソースから実行します。
2. スクレーパーとの統合:
リクエストごとにプロキシ アドレスを動的に取得します。
3. 健康状態を監視する:
応答時間と障害を追跡して、無効なプロキシを自動的に除外します。
4. 更新を自動化する:
プロキシ リストを最新の状態に保つために、ProxyRoller の API から定期的に更新をスケジュールします。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!