デバイス
Android エミュレータのプロキシ設定: 1 台ごとに固有の IP
Macro Automation Studio でエミュレータのインスタンスやクラウドデバイス 1 台ごとに HTTP、HTTPS、SOCKS5 プロキシを割り当て、出口 IP をテストして Webhook で確認します。
- Windows
- Mac
- エミュレータ
- クラウド端末
- Studio
- API
このページの内容
Android エミュレータのインスタンスやクラウドデバイス 1 台ごとにプロキシを設定すると、それぞれが固有のネットワーク上の身元を持ちます。Macro Automation Studio (MAS) はプロキシをアカウントに保存し、各デバイスに 1 つのプロキシを付け、そのデバイスのトラフィックをそこに通します: エミュレータではローカルのリレーで、クラウドデバイスではデバイスのネットワーク内の透過プロキシで。このページでは、プロキシの種類、追加する 2 つの方法、割り当て、テスト、制限を扱います。
始める前に
- 使うプロキシ: MAS が連携する住宅用ゲートウェイのアカウントか、その他のプロバイダーのエンドポイント。
- デバイスグループ 内のデバイス。プロキシはグループではなくデバイスに付きます。
- MAS がインストール済みで、有効なプランでサインインしていること。
プロキシの種類
MAS は http、https、socks5 のプロキシを、ユーザー名とパスワードの有無を問わず受け付けます。IP 認証のプロキシでは資格情報を空のままにします。
プロキシ ページでプロキシを追加する方法は 2 つあります:
- ゲートウェイアカウント (最初のタブ): ゲートウェイアカウントのログイン名とパスワードを 1 度入力します。これで 1 つの項目が追加され、付けたすべてのデバイスがゲートウェイから固有のスティッキー IP を受け取ります。国 (任意) を選び、プロトコル として HTTP か SOCKS5 を選び、高度なターゲティング を開いて州、都市、郵便番号、ASN を指定できます。より細かいターゲティングには国が必要で、プロバイダーがより高いレートで課金します。フォームは使用前にそう伝えます。
- 別のプロバイダー: ラベル、プロトコル、ホスト / IP、ポート、任意の ユーザー名 と パスワード を入力するか、プロキシを貼り付け (1 行に 1 つ) に次のいずれかの形式で多数のプロキシを一度に貼り付けて インポートしてテスト をクリックします:
host:port
host:port:user:pass
scheme://user:pass@host:port追加してテスト をクリックします。MAS は資格情報を暗号化して保存し、すぐにプロキシをテストします。
プロキシをテストする
プロキシプール の表には、すべてのプロキシが状態付きで並びます: live、dead、unchecked。テスト はプロキシ経由で IP エコーサービスに接続し、出口 IP、出口の国、レイテンシを記録します。すべてテスト はプール全体に対して行います。出口 / 地域 列には、要求した内容 (want:) と、テストで観測した内容 (got:) が並びます。ゲートウェイは要求した国以外から出ることがあるためです。ゲートウェイのプロキシはセッションなしでテストされるので、テストの出口はローテーションするものになります。
データ 列は、過去 30 日間に MAS がそのプロキシに通したトラフィックで、MAS 自身のリレーで測定したものです。プロバイダーの請求額とは異なることがあります。
エミュレータのインスタンスやクラウドデバイス 1 台ごとにプロキシを付ける
デバイスごとに 1 つのプロキシです。2 つ目を付けると 1 つ目が置き換えられ、ダイアログが警告します: 「This device already has a proxy. Attaching will replace it.」
プロキシ ページから:
- プロキシの 割り当て をクリックします。
- エミュレータデバイス を選びます。すでにプロキシのあるデバイスには「has a proxy」と表示されます。
- セッション動作 を選びます: このデバイスに 1 つの IP を固定する スティッキー、またはリクエストごとに新しい IP を使う ローテーション。
- 割り当て をクリックします。
デバイスグループ のデバイスカードからは、詳細設定 を開いて プロキシ ドロップダウンでプロキシを選びます。カードはスティッキーとして付けます。プロキシなし で割り当てを外します。
すべてのスティッキーな割り当てには固有のセッション ID が付き、これが 1 つのゲートウェイアカウントをデバイスごとに異なる出口 IP に変えるものです。別のプロバイダーの単純なプロキシでは、出口 IP はそのエンドポイントが与えるもので、セッション設定では変わりません。
アクティブな割り当て の表には、各デバイスがプロキシとセッション付きで並びます。適用情報 は、MAS の外で使うための、デバイスごとのユーザー名を含む解決済みの接続情報を表示します。
SOCKS5 や HTTP プロキシが Android エミュレータで動く仕組み
Android のグローバルプロキシ設定にはユーザー名とパスワードの欄がなく、ゲートウェイのユーザー名にはターゲティングとセッション ID が入っています。そのため MAS は、実行ごとにこのコンピューター上で小さなリレーを動かします:
- 実行の開始時、MAS はデバイスのプロキシを調べ、
127.0.0.1の空きポートにバインドしたリレーを起動します。リレーは送信時に資格情報を付け、デバイスとは HTTP で、上流とは HTTP、HTTPS、SOCKS5 で話すので、SOCKS5 自体を話せないエミュレータでも SOCKS5 のゲートウェイが動きます。 - MAS はリレー経由でリクエストを 1 つ送って経路が動くことを確かめ、出口 IP、国、都市を読み取ります。誤った資格情報や利用できない地域は、マクロが始まる前のここで失敗します。
- adb の接続後、MAS は
adb reverseを実行してエミュレータ自身の localhost からリレーに届くようにし、デバイスのグローバル HTTP プロキシを127.0.0.1:<relay port>に設定します。再接続は reverse のマッピングを失わせるので、再接続のたびにこれを繰り返します。 - 実行が終わると、MAS はプロキシ設定を消し、reverse のマッピングを外し、リレーを閉じます。
デバイスカードは各ステップを伝えます: 確認後の Proxy ready、適用後の出口 IP 付きの Proxy active、実行後の Proxy off、そして理由付きの Proxy failed。リレーはループバックだけで待ち受けるので、ネットワーク上の他の何かが使うことはできません。
クラウドデバイスでの仕組み
クラウドデバイスでは MAS は Android の設定をまったく使いません。デバイスの起動時、ホストがデバイスのネットワーク名前空間内で透過プロキシを起動し、すべての外向き TCP 接続をそこに転送します。各接続はあなたの資格情報であなたの上流プロキシを通して開き直されるため、アプリがプロキシを尊重するかどうかにかかわらず、デバイスのすべてのトラフィックがプロキシの IP から出ます。クラウドのプロキシは上流と HTTP CONNECT で話すので、クラウドデバイスには HTTP か HTTPS のプロキシを与えてください。
- プロキシは実行ごとではなく、デバイスの寿命の間適用されます。付けるか変更してから、デバイスを停止して開始します。カードには「Applies when the device next starts」と表示されます。
- デバイスの実行中、カードには出口 IP 付きの プロキシ が表示され、各実行のログは「Proxy active, traffic routed through
」で始まります。 - プロキシを適用できない場合、デバイスはプロキシなしで開始しません。「proxy setup failed, turn the device off and on to retry」で Error になります。
- デバイスの実行中に付けたプロキシは、再起動なしに後のポーリングで適用されます。
Webhook と実行履歴の出口 IP
実行中にプロキシがアクティブだった場合、その実行の Webhook イベントには data 内に device_name、device_port、group_id と並んで proxy_exit_ip と proxy_country が入ります。同じ値が実行とともに保存されるので、後から実行のトラフィックがどこから出たかを確認できます。Webhook を参照してください。
制限
- デバイスごとに 1 つのプロキシ。プロキシのないデバイスは直接接続します。
- スキーム:
http、https、socks5。ポートは 1 から 65535。 - エミュレータは実行ごとにプロキシを適用し、クラウドデバイスはデバイスの開始ごとに適用して、HTTP か HTTPS の上流を必要とします。
- ゲートウェイのターゲティング: 対象国か除外国のどちらか一方で、両方は指定できません。州、都市、郵便番号、ASN には国が必要です。
- 使用量の数字は MAS が測定したもので、プロバイダーの請求ではありません。
API キー向けのプロキシのルート
すべてのプロキシのルートは API キー を受け付けます: /api/proxy と /api/proxy/{id} の GET、POST、PUT、POST /api/proxy/import、POST /api/proxy/{id}/validate、/api/proxy/assignments/{id}/connection-info を含む /api/proxy/assignments 以下の割り当てルート、デバイスに付いたプロキシを返す GET /api/proxy/devices/{device_id}、そして GET /api/proxy/usage。デバイス ID を調べるには GET /api/emulator/devices を使います。REST API を参照してください。
トラブルシューティング
デバイスカードに Proxy failed と出る
メッセージがステップを示します。「proxy did not respond, check credentials or targeting」は、上流が確認を拒否したことを意味します: 誤ったログイン、期限切れのプラン、またはゲートウェイに IP のない国。プロキシページで テスト を実行し、プロバイダーの応答を確認してください。「could not expose the proxy relay to the device (adb reverse)」か「could not set the device proxy」は、接続からセットアップの間に adb がエミュレータを見失ったことを意味します。ADB トラブルシューティング を参照して、実行をもう一度開始してください。
状態が dead と表示される
テストがプロキシ経由でインターネットに到達できませんでした。ホスト、ポート、スキーム、次に資格情報を確認し、IP 認証の場合はプロキシがこのコンピューターの IP を許可していることを確かめます。直してからもう一度 テスト します。成功するとレイテンシと出口 IP が更新されます。
クラウドデバイスに proxy setup failed と出る
デバイスのホストが起動時にプロキシを適用できませんでした。プロキシが live であること、SOCKS5 ではなく HTTP か HTTPS のプロキシであることを確認してから、停止 をクリックし、待ってから 開始 します。プロキシなしでデバイスを開始するには、先にその プロキシ を プロキシなし にします。
次のステップ
関連ページ
ありがとうございます。誤りがあればDiscordでお知らせください。
質問がありますか? Discordで質問する