proxyポート
ブラウザ、ダウンロードツール、既存のスクレイパーなど、proxy URLを受け付ける任意のクライアントからFourAのエグジットを経由してトラフィックを送信できます。proxyポートは指定されたターゲットへのトンネルを開き、双方向にバイトをコピーします。これにより、JSON APIでは対応できないストリーム、大容量ダウンロード、ブラウザセッション全体などを伝送できます。
接続
| 設定 | 値 |
|---|---|
| Host | proxy.foura.ai |
| Port | 34004 |
| Protocol | Basic認証を使用したHTTP CONNECT |
| 対象ポート | 443および80 |
認証情報はダッシュボードから取得します。サイドバーのProxyでproxyユーザーを作成すると、生成されたユーザー名とパスワードが発行されます。これらは意図的にAPIキーとは分離されています。proxyハンドシェイクは接続ごとに平文で送信されるため、API統合に影響を与えることなくproxyユーザーをローテーションできます。Proxy Usersを参照してください。
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
import requests
proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
このポートはCONNECTのみを受け付けます。https://ターゲットはすべてのクライアントによってトンネリングされます。プレーンなhttp://ターゲットは、クライアントが同様にトンネリングする場合にのみ機能します(curl: --proxytunnel)。プレーンなリクエストをそのままプロキシへ転送するクライアントは、代わりに405 Method Not Allowedを受け取ります。
オプションはユーザー名で指定
認証情報以降の文字列は、順不同の-key-valueペアのリストです。
USERNAME-network-premium-country-de-session-a1
値は小文字の単語です。値の中にハイフンを含めると新しいオプションの開始とみなされるため、-city-new-york は2つのオプションとして解釈されて拒絶されます。不明なキーも無視されることなく拒絶されます。例えばスペルミスの -contry-de は、誤った国から処理されるのではなく、サポートされているキーの一覧を示す 400 エラーを返します。
| オプション | 値 | 機能 |
|---|---|---|
network |
shared (デフォルト、エイリアス: pool)、premium (エイリアス: residential) |
アドレスの取得元ネットワーク。Shared はプランに含まれる FourA 独自のエグジットです。Premium はレジデンシャルアドレスであり、プランに含まれるプレミアムトラフィック枠および追加購入分から消費されます。 |
fallback |
premium (エイリアス: residential)、off |
Shared ネットワーク専用。Shared ネットワークでリクエストを処理できない場合に Premium エグジットを使用します。明示的に指定しない限りオフであり、プランにプレミアムトラフィック枠が含まれ、かつ残容量がある場合にのみ動作します。 |
country |
ISO 3166-1 alpha-2、複数指定可 | ターゲットから見えるエグジット国。複数国を対象にする場合は繰り返し指定します: -country-de-country-fr。 |
session |
1〜32文字の英数字またはアンダースコア | 同じ名前を共有する接続は同一のアドレスを共有します (sticky)。接続ごとに新しいアドレスを使用する場合は省略します (rotating)。 |
state |
単語 | 地域。Premium 専用。 |
city |
単語 | 都市。Premium 専用。 |
asn |
数値 | AS番号によるネットワーク。Premium 専用。 |
os |
windows、android、ios、mac |
アドレスが属するデバイスの種類。Premium 専用。 |
lifetime |
3〜1440 |
スティッキーな Premium アドレスを保持する分数。Premium 専用。 |
network、fallback、session を除くすべてのオプションで any を指定できます。これにより、この接続に限り proxy ユーザーに保存された値がクリアされます。
以下の3つの組み合わせは、部分的に適用されることなく 400 エラーで拒絶されます。
- Shared ネットワークでの
state、city、asn、os、またはlifetimeの使用。Shared ネットワークの指定は国単位までであり、それ以上細かい指定はできません。都市をターゲットにするには-network-premiumを追加してください。 -fallback-premiumと-network-premiumの併用。フォールバック先のネットワーク自体でフォールバックを設定することはできません。- フォールバックを有効にした状態での詳細なターゲティング。フォールバックは発動する場合としない場合があるため、状況によって対応できない都市指定などは拒絶されます。
セッション
Shared ネットワークでは、名前付きセッションを使用すると、利用を継続している限り10分間のスライディングウィンドウ方式で同一のエグジットが維持されます。そのエグジットが停止した場合、セッションは失敗せずに別のエグジットへと切り替わります。ポート経由でブラウザを操作する場合は、常にセッション名を指定してください。1回のページ読み込みで数十の接続が発生するため、セッションがないと各接続が異なるアドレスから送信されてしまいます。
Premium ネットワークでは、名前付きセッションは lifetime 分間、または未設定の場合はネットワークのデフォルト値の間アドレスを保持します。
保存されたデフォルト値
ダッシュボードでプロキシユーザーに保存されたターゲティングは、そのユーザーで行われるすべての接続に適用されるため、ユーザー名を短く保つことができます。ユーザー名に指定した値はその接続において常に優先され、any を指定すると保存された値に戻ります。保存されたプレミアムのデフォルト設定はプランで許可されている場合にのみ消費されます。それ以外の場合、接続は共有ネットワークから提供され、トンネルは正常に確立されます。
CONNECTヘッダー
CONNECTリクエストにヘッダーを追加できるクライアントは、同じオプションをヘッダーとして送信できます。ヘッダーはユーザー名内の同じオプションよりも優先されます。
| ヘッダー | 同等設定 |
|---|---|
X-Foura-Network |
-network- |
X-Foura-Fallback |
-fallback- (premium または off) |
X-Foura-Country |
-country-、複数の場合はカンマ区切り |
X-Foura-Session |
-session- |
X-Foura-State |
-state- |
X-Foura-City |
-city- |
X-Foura-Asn |
-asn- |
X-Foura-Lifetime |
-lifetime- |
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
--proxy-header "X-Foura-Country: de" \
https://example.com
レスポンス
正常に開いたトンネルは200 Connection establishedを返します。認証情報の確認後に発生した拒絶には、すべて1行の理由を含むX-Foura-Errorヘッダーが付与されます。そのため、何よりも先にそのヘッダーを確認してください。
| ステータス | 発生条件 |
|---|---|
| 400 Bad Request | 不正なリクエスト、またはFourAが処理できないオプションです。X-Foura-Errorに対象のオプションとサポートされている値が示されます。 |
| 403 Forbidden | 対象ポートが非対応、対象が公開インターネット上のホストではない、ポートがプランに含まれていない、または-network-premiumを指定したがプランのプレミアムトラフィック残量がないかプレミアムネットワークが含まれていない場合です。 |
| 405 Method Not Allowed | CONNECTではなく通常のプレーンなリクエストが送信されました。 |
| 407 Proxy Authentication Required | 認証情報が存在しないか誤っています。どちらに問題があったかは返答に示されません。 |
| 408 Request Timeout | クライアントが接続後、15秒間何も送信しませんでした。 |
| 431 Request Header Fields Too Large | CONNECTリクエストのヘッダーが16 KBを超過しました。 |
| 429 Too Many Requests | プランの上限(同時オープン可能なトンネル数、1分あたりのトンネル開始数、または今請求サイクルの標準トラフィック量)のいずれかに達しました。ポート自体の容量または開設レートの上限に達した場合にも発生します。詳細はX-Foura-Errorに記載されます。 |
| 502 Bad Gateway | 選択バジェット内に対象の有効な出口が見つからなかったか、FourA独自のリゾルバーがホストを名前解決できませんでした。両者はX-Foura-Error内で異なるメッセージとして出力されます。 |
| 503 Service Unavailable | プロキシポートが無効化されています。 |
制限事項
- 同時オープン可能なトンネル数および1分あたりのトンネル開設数はプランに準拠し、プロキシユーザー単位ではなくアカウント単位でカウントされます。2つ目の認証情報を発行しても追加の制限枠は付与されません。現在の値はUsage & Limitsで確認できます。
- 出口の探索は最大45秒間行われ、見つからない場合はポートが502エラーで終了します。すでに確立された出口を持つセッションは、通常1秒未満で接続されます。
- 双方向で送受信バイトがないトンネルは、2分間のアイドル状態を経て切断されます。
- ポートが更新された際、すでに開いているトンネルには完了までに3分弱の猶予が与えられた後に切断されますが、新規接続はそのまま継続して受け付けられます。長時間のダウンロードやストリーミングは、トンネルが切断された際に再接続処理を行う必要があります。
- ダッシュボードで無効化または削除したプロキシユーザーは、1分以内に認証が通らなくなります。
計測
ポートを通過したバイト数はUsage & Limitsページの帯域幅として加算され、プレミアム出口を通過したバイト数はプレミアムトラフィックとしてもカウントされます。同一のバイト数が別々に記録され、合算して請求されることはありません。トンネルが開いた際、ポートが試行したものの使用されなかったプレミアム出口のトラフィックもプレミアムトラフィックとして計上されます。共有ネットワークにおける未使用の試行はカウントされず、トンネルが開かなかった場合は何もカウントされません。
ポートが使用できる標準トラフィックは契約プランに基づきます。クレジット制プランではポート専用のギガバイトが含まれており、Billingページから追加購入できます。トラフィック制プランではAPIと同じプールから消費されます。これらを使い切ると、期間がリセットされるか容量を追加するまで新しい接続は拒否されます。使用状況メールにリセット時期が記載されます。
プレミアム枠を使い切った場合、そのネットワークへの3つのアクセス方法は意図的に異なる動作をします。-network-premiumを指定した接続は、その旨を示す403で拒否されます。プレミアム利用を指定した呼び出し元に対し、静かに他の場所からトラフィックを提供してしまうと、リクエストを送り続けて実際には反映されないプレミアム枠の精算を試みてしまうためです。フォールバックは実行されず、プロキシユーザーに保存されたプレミアムデフォルト設定は共有ネットワークにダウングレードされてトンネルは引き続き開かれます。これらはいずれも、今回の接続で明示的にプレミアム枠を消費することを選択していないためです。
関連ドキュメント
- Proxy Users: ダッシュボードでプロキシユーザーを作成し、接続文字列を生成
- Proxy Request: リトライと検証が組み込まれたJSON API代替手段
- リクエスト間でのプロキシ再利用: JSON APIで同一のエグジットを維持
- 使用状況と制限: プランに対する帯域幅とプレミアムトラフィック