プロキシトンネリングの設定:完全ガイド
ここでは、プロキシトンネリングの基本を説明し、設定プロセスを案内し、Bright Dataのプラットフォームをプロジェクトで最大限に活用する方法を紹介します。なお、このガイドに関してBright Dataから手数料を受け取っておらず、アフィリエイトリンクも使用していません。
プロキシトンネリングとは?
プロキシトンネリングは、インターネットトラフィックがプロキシサーバーを通じてルーティングされ、異なるIPアドレスから来ているように見える方法です。これは、位置情報を隠したり、地理的に制限されたコンテンツにアクセスしたり、検出されずにウェブサイトからデータをスクレイピングしたりする際に特に便利です。
プロキシトンネルでは、元のリクエストが仲介者(プロキシサーバー)を通じて送信され、その後、ターゲットサーバーにリクエストが転送されます。レスポンスはプロキシに返され、元のリクエスターに転送されます。これにより、ユーザーの本当のアイデンティティが隠されたトンネルが作成されます。
プロキシトンネリングを使用する理由
プロジェクトでプロキシトンネリングを使用する良い理由はたくさんあります。
プライバシー保護: 通常のブラウジングでは、ウェブサイトはあなたの本当のIPアドレスを見ることができます。プロキシトンネリングを使用すると、ウェブサイトはプロキシサーバーのアドレスしか見ることができません。あなたの本当のアイデンティティは隠されたままです。
制限されたコンテンツへのアクセス: 一部のウェブサイトは特定の国からのユーザーをブロックします。許可された国にあるプロキシサーバーを使用すると、これらのサイトにアクセスできます。これは、研究、テスト、ビジネスニーズに役立ちます。
ウェブスクレイピング**:** ウェブサイトからデータを収集している場合、リクエストが多すぎるとIPがブロックされることがあります。プロキシトンネリングを使用すると、異なるIPアドレスを回転させることができます。これによりブロックを防ぎ、スクレイピングをスムーズに実行できます。
セキュリティテスト: 開発者やセキュリティ専門家は、異なる場所からのリクエストに対するウェブサイトの応答をテストするためにプロキシトンネリングを使用します。これにより、バグやセキュリティの問題を見つけるのに役立ちます。
検閲の回避: 一部の地域では、政府が特定のウェブサイトをブロックしています。プロキシトンネリングは、人々がこれらの制限を回避し、自由に情報にアクセスできるようにします。
プロキシトンネリングの種類
プロキシトンネリングにはさまざまな方法があります。それぞれに独自の強みがあります。
HTTPトンネリング: これは最も一般的なタイプです。HTTP CONNECTメソッドを使用します。コンピュータがプロキシに特定のウェブサイトへのトンネルを作成するように依頼します。プロキシは、トラフィックを確認せずにすべてのトラフィックを通過させます。これはウェブブラウジングに適しています。
SOCKSプロキシ: SOCKSはSocket Secureの略です。SOCKS5は最新のバージョンです。HTTPプロキシよりも低いネットワークレベルで動作します。これにより、ウェブブラウジングだけでなく、さまざまなタイプのトラフィックを処理できます。メール、ファイル転送、その他のアプリケーションにも使用できます。
VPNトンネリング: 仮想プライベートネットワークは、すべてのインターネットトラフィックのために暗号化されたトンネルを作成します。プロキシトンネリングよりも包括的ですが、設定が遅く、複雑になることがあります。
SSHトンネリング: セキュアシェルトンネリングはSSHプロトコルを使用します。非常に安全で柔軟です。開発者は、サーバーへの安全なリモートアクセスのためによく使用します。
プロキシトンネリングはどのように機能するのか?
プロキシトンネリングのプロセスは、いくつかのステップで構成されています。これを簡単に説明します。
- 接続の作成: あなたのコンピュータはプロキシサーバーへの接続をリクエストします。このリクエストには、あなたのプロキシサービスのユーザー名とパスワードが含まれています。
- トンネルの確立: プロキシサーバーはあなたの認証情報を確認します。正しければ、安全なトンネルを作成します。このトンネルは、あなたとプロキシの間のプライベートな経路のようなものです。
- 暗号化: あなたのデータはトンネルを通過する前に暗号化されます。暗号化はデータをスクランブルし、もしデータが傍受されても誰も読むことができないようにします。プロキシサーバーと目的のウェブサイトだけがそれを復号できます。
- リクエストの転送: ウェブサイトを訪れると、あなたのリクエストはトンネルを通ってプロキシサーバーに渡されます。プロキシサーバーはそのリクエストをウェブサイトに送信します。
- レスポンスの取得: ウェブサイトはそのレスポンスをプロキシサーバーに返します。プロキシサーバーはこのレスポンスを受信し、トンネルを通じてあなたのコンピュータに返します。
- 復号化: あなたのコンピュータは暗号化されたレスポンスを受け取り、それを復号化します。これで、あなたは直接訪問したかのようにウェブサイトのコンテンツを見ることができます。
Bright Dataの設定: はじめに
Bright Dataでプロキシトンネリングを使用する前に、アカウントを設定し、プロキシゾーンを構成する必要があります。
アカウントの作成: Bright Dataのウェブサイトにアクセスします。アカウントにサインアップします。メールアドレスを提供し、パスワードを作成する必要があります。サービスをテストできる無料トライアルが提供されています。
ダッシュボードへのアクセス: サインアップ後、コントロールパネルにログインします。ここで、すべてのプロキシ設定を管理します。ダッシュボードは使いやすく、明確なナビゲーションがあります。
ゾーンの理解: Bright Dataでは、ゾーンはプロキシ設定のコレクションです。各ゾーンには独自のユーザー名、パスワード、構成があります。異なるプロジェクトのために異なるゾーンを作成できます。
最初のゾーンの作成: ダッシュボードで「Add Zone」ボタンをクリックします。いくつかのオプションが表示されます。希望するネットワークのタイプを選択します。ほとんどのプロジェクトでは、ResidentialまたはISPプロキシが適しています。
ゾーン設定の構成: ゾーンに名前を付けます。これにより、後で識別しやすくなります。IPアドレスを取得したい国を選択します。「All Countries」を選択するか、特定の国を選ぶことができます。必要なIPアドレスの数を決定します。
ターゲットドメイン: アクセス予定のウェブサイトを追加します。特定のドメインを追加するか、多くのサイトで作業している場合は「All Domains」を選択できます。これにより、Bright Dataが接続を最適化します。
認証: Bright Dataはゾーンのためのユーザー名とパスワードを生成します。これらの認証情報を安全な場所に保存します。プロキシに接続するために必要です。
Bright Dataプロキシの接続: Super Proxy vs Proxy Manager
Bright Dataはプロキシを使用するための2つの主要な方法を提供しています。各方法には利点があります。
Super Proxy接続: これは直接的な方法です。あなたはBright Dataのプロキシサーバーに直接接続します。シンプルで、ほとんどのアプリケーションやプログラミング言語で機能します。
Super Proxyアドレスは次のようになります: zproxy.lum-superproxy.io:22225。ポート番号はプロキシの種類に応じて変更されます。HTTPおよびHTTPSの場合はポート22225または33335を使用します。SOCKS5の場合はポート22228を使用します。
Super Proxyを使用するには、ゾーンのユーザー名とパスワードが必要です。ユーザー名の形式は次のとおりです: lum-customer-YOURCUSTOMERID-zone-YOURZONENAME。この正確な形式はゾーン設定で確認できます。
Proxy Managerメソッド: Proxy Managerは、コンピュータにインストールするローカルアプリケーションです。アプリケーションとBright Dataのサーバーの間のブリッジとして機能します。
Proxy Managerはより多くの機能を提供します。IPを簡単にローテーションできます。ターゲティングルールを設定できます。リアルタイムで使用状況を監視できます。複雑なプロジェクトに最適です。
Proxy Managerを使用するには、Bright Dataのウェブサイトからダウンロードします。マシンにインストールします。起動すると、http://127.0.0.1:22999でウェブインターフェースが開きます。ここからプロキシポートを作成および管理できます。
各プロキシポートをマネージャーで作成すると、127.0.0.1:24000のようなローカルアドレスが割り当てられます。アプリケーションはこのローカルアドレスに接続します。マネージャーは、その後、トラフィックをBright Dataのサーバーに転送します。
スーパー プロキシ接続の設定
直接のスーパー プロキシ接続の設定方法を説明します。これはほとんどのユースケースで機能します。
ステップ 1: 認証情報を取得: Bright Dataダッシュボードにログインします。プロキシゾーンに移動します。「アクセスパラメータ」または類似のオプションをクリックします。フルユーザー名が表示されます。これはlum-customer-ABC123-zone-myprojectのようになります。このユーザー名をコピーします。また、ゾンパスワードもコピーします。
ステップ 2: プロトコルを選択: HTTP/HTTPSまたはSOCKS5が必要かどうかを決定します。通常のウェブブラウジングやほとんどのウェブスクレイピングには、HTTP/HTTPSで問題ありません。低レベルのネットワークアクセスが必要なアプリケーションには、SOCKS5を使用します。
ステップ 3: アプリケーションを設定: アプリケーションやプログラミング言語によってプロキシ設定の方法は異なります。以下は一般的な例です。
PythonのRequestsライブラリを使用する場合:
import requests
proxies = {
"http": "http://lum-customer-ABC123-zone-myproject:password@zproxy.lum-superproxy.io:22225",
"https": "http://lum-customer-ABC123-zone-myproject:password@zproxy.lum-superproxy.io:22225",
}
response = requests.get("http://example.com", proxies=proxies)
print(response.text)
import requests
proxies = {
'http': 'http://USERNAME:PASSWORD@zproxy.lum-superproxy.io:22225',
'https': 'http://USERNAME:PASSWORD@zproxy.lum-superproxy.io:22225'
}
response = requests.get('https://example.com', proxies=proxies)
For cURL command line:
curl -x zproxy.lum-superproxy.io:22225 -U USERNAME:PASSWORD https://example.com
For Node.js with Axios:
const axios = require('axios');
const proxy = {
host: 'zproxy.lum-superproxy.io',
port: 22225,
auth: {
username: 'lum-customer-ABC123-zone-myproject',
password: 'yourpassword'
}
};
axios.get('https://example.com', { proxy })
.then(response => console.log(response.data));
ステップ 4: 接続をテスト: プロジェクト全体を実行する前に、接続をテストします。シンプルなウェブサイトにアクセスしてみてください。Bright Dataはテスト用のURLを提供しています: https://geo.brdtest.com/welcome.txt. このURLはプロキシ接続に関する情報を返します。現在のIPアドレスと位置情報が表示されます。
ステップ 5: エラーを処理: 接続が失敗することがあります。エラーメッセージを注意深く確認してください。一般的な問題には、認証情報の誤り、サポートされていないターゲットドメイン、またはネットワーク制限が含まれます。Bright Dataはレスポンスヘッダーに役立つエラーコードを返します。
プロキシマネージャーの設定
プロキシマネージャーは、より多くの制御と機能を提供します。設定方法は以下の通りです。
ステップ 1: ダウンロードとインストール: Bright Dataダッシュボードに移動します。プロキシマネージャーのダウンロードリンクを見つけます。オペレーティングシステムに対応したバージョンをダウンロードします。Windows、Mac、Linuxすべてがサポートされています。アプリケーションをインストールします。
ステップ 2: マネージャーを起動: プロキシマネージャーアプリケーションを実行します。ブラウザウィンドウが自動的に開きます。これがマネージャーのWebインターフェースです。アドレスは http://127.0.0.1:22999 です。
ステップ 3: 新しいプロキシポートを追加: 「新しいプロキシを追加」または「開始」をクリックします。セットアップウィザードが表示されます。ドロップダウンメニューからプロキシゾーンを選択します。これにより、マネージャーがBright Dataアカウントに接続されます。
ステップ 4: プロキシタイプを選択: 異なるプロキシタイプの中から選択します。ブラウザモードはウェブスクレイピングに適しています。長い単一セッションは、セッション全体で同じIPを保持します。セッションモードでは、各リクエストごとにIPがローテーションします。
ステップ 5: 設定を構成: 必要な追加オプションを設定します。特定の国や都市からIPを取得するためのターゲティングルールを追加できます。IPごとのリクエスト数を設定できます。ローテーションのタイミングを構成できます。
ステップ 6: ポートを作成: 「保存」または「作成」をクリックします。マネージャーが新しいプロキシポートを作成します。ポート番号が画面に表示されます。通常、24000から始まります。このポート番号を書き留めておいてください。
ステップ 7: ローカルプロキシを使用: これで、アプリケーションは 127.0.0.1:PORTNUMBER に接続します。例えば、 127.0.0.1:24000 です。マネージャーが認証を処理するため、ユーザー名とパスワードを含める必要はありません。
Pythonの例:
import requests
proxies = {
'http': 'http://127.0.0.1:24000',
'https': 'http://127.0.0.1:24000'
}
response = requests.get('https://example.com', proxies=proxies)
ステップ8: 使用状況を監視する: マネージャーはリアルタイムの統計を表示します。どれだけのリクエストを行ったか、どのIPを使用しているかを確認できます。エラーを特定し、問題を迅速にトラブルシューティングできます。
SOCKS5プロキシの設定
SOCKS5プロキシはHTTPプロキシとは異なる動作をします。より低いネットワークレベルで動作するため、柔軟性が高くなります。
SOCKS5を使用するタイミング: HTTP以外のトラフィックをプロキシする必要がある場合にSOCKS5を使用します。これにはFTPファイル転送、メールプロトコル、またはピアツーピア接続が含まれます。SOCKS5は、HTTPプロキシをネイティブにサポートしないアプリケーションでもうまく機能します。
Bright Data SOCKS5構成: Bright DataはすべてのプロキシタイプでSOCKS5をサポートしています。サーバーアドレスは brd.superproxy.io です。SOCKS5ポートは常に 22228 です。
重要なSOCKS5ルール: Bright DataにはSOCKS5に関する特定の要件があります。IPアドレスではなく、ドメイン名を使用する必要があります。DNS解決はプロキシ側で行われ、ローカルでは行われません。これをSOCKS5hと呼びます(hはホスト名を意味します)。
cURLを使用したSOCKS5の設定:
curl -k -x socks5h://brd.superproxy.io:22228 --proxy-user USERNAME:PASSWORD https://example.com
-kフラグはcURLにSSL証明書エラーを無視するよう指示します。これは、住宅用およびモバイルプロキシに必要です。
Pythonを使用したSOCKS5の設定:
import requests
proxies = {
'http': 'socks5h://USERNAME:PASSWORD@brd.superproxy.io:22228',
'https': 'socks5h://USERNAME:PASSWORD@brd.superproxy.io:22228'
}
response = requests.get('https://example.com', proxies=proxies)
SSL証明書: 住宅用プロキシまたはモバイルプロキシをSOCKS5で使用する場合、Bright DataのSSL証明書をインストールする必要があるかもしれません。これにより、安全なエンドツーエンド接続が確保されます。Bright Dataダッシュボードから証明書をダウンロードし、提供された指示に従ってシステムにインストールします。
高度なターゲティングオプション
Bright Dataでは、特定のタイプのIPアドレスをターゲットにすることができます。これは、テストや地域特有のコンテンツへのアクセスに役立ちます。
国ターゲティング: ユーザー名に国コードを追加します。例えば: lum-customer-ABC123-zone-myproject-country-us で、米国のIPアドレスを取得できます。us、uk、de、jpのような2文字の国コードを使用してください。
都市ターゲティング: 特定の都市をターゲットにすることもできます。フォーマットは次のとおりです: lum-customer-ABC123-zone-myproject-country-us-city-newyork。都市名はスペースなしで小文字で記述します。
ASNターゲティング: ASNは自律システム番号を意味します。各インターネットサービスプロバイダーにはASNがあります。特定のプロバイダーをターゲットにできます: lum-customer-ABC123-zone-myproject-asn-12345。
セッション管理: セッションは、同じIPアドレスをどれだけの期間保持するかを決定します。ユーザー名に-session-random123を追加してセッションを作成します。同じセッションIDを使用して、複数のリクエストで同じIPを保持します。
IP持続性: 長時間同じIPが必要なタスクには、長いセッション機能を使用します。プロキシマネージャーで「長い単一セッション」モードを選択します。これにより、数時間または数日間、IPアドレスが一定に保たれます。
プロジェクトへのプロキシトンネリングの統合
Bright Dataプロキシを実際のプロジェクトに統合する完全な例を見てみましょう。
プロジェクトシナリオ: 価格比較のためにeコマースウェブサイトから商品価格を収集する必要があります。このウェブサイトは、同じIPアドレスからの繰り返しリクエストをブロックします。
ステップ1: アプローチを計画する: 検出を避けるために住宅用プロキシが必要です。20リクエストごとにIPをローテーションします。リクエストの間に2〜5秒のランダムな遅延を追加します。関連するリクエストのために同じIPを維持するためにセッション管理を使用します。
ステップ2: ゾーンを設定する: Bright Dataで住宅用プロキシゾーンを作成します。「price-scraper」と名付けます。ターゲットドメインを許可されたドメインリストに追加します。ユーザー名とパスワードを取得します。
ステップ3: コードを書く: こちらがRequestsライブラリを使用したPythonの例です:
import requests
import time
import random
class BrightDataProxy:
def __init__(self, username, password):
self.username = username
self.password = password
self.host = 'zproxy.lum-superproxy.io'
self.port = 22225
self.request_count = 0
self.session_id = random.randint(1000000, 9999999)
def get_proxy_url(self):
# Rotate session every 20 requests
if self.request_count % 20 == 0:
self.session_id = random.randint(1000000, 9999999)
# Add session to username for IP persistence
username_with_session = f"{self.username}-session-{self.session_id}"
return {
'http': f'http://{username_with_session}:{self.password}@{self.host}:{self.port}',
'https': f'http://{username_with_session}:{self.password}@{self.host}:{self.port}'
}
def make_request(self, url):
proxies = self.get_proxy_url()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}
try:
response = requests.get(url, proxies=proxies, headers=headers, timeout=30)
self.request_count += 1
# Random delay between requests
time.sleep(random.uniform(2, 5))
return response
except Exception as e:
print(f"Request failed: {e}")
return None
# Usage
proxy = BrightDataProxy('lum-customer-ABC123-zone-price-scraper', 'yourpassword')
for product_url in product_urls:
response = proxy.make_request(product_url)
if response and response.status_code == 200:
# Process the response
print(f"Successfully scraped {product_url}")
else:
print(f"Failed to scrape {product_url}")
ステップ 4: テストと監視: まずは少数のURLでスクリプトを実行します。結果を確認し、必要なデータが取得できていることを確認します。Bright Dataのダッシュボードを監視して、帯域幅の使用状況やエラーを確認します。
ステップ 5: スケールアップ: テストが成功したら、フルデータセットにスケールアップします。問題が発生した場合は監視を続け、遅延やローテーション戦略を調整します。
最後の言葉
プロキシトンネリングの設定は、匿名かつ信頼性の高いウェブコンテンツへのアクセスに優れたソリューションを提供します。このガイドに従うことで、市場調査を行ったり、異なる場所でアプリケーションをテストしたり、公開データを大規模に収集したりする際に、プレミアムプロキシを活用するアプリケーションを構成できます。
この記事に関連する具体的な質問がありますか?コメントでお知らせください!
